C语言,恐怕最经常用到的是IO,因为通过输入输出才能知道自己的程度是错还是对,简单的IO就不说了,这里讲两个大家可能会用到的但是很少资料说的IO。
第一个:文件读取
平常写文件读取是很麻烦的事情,但是如果可以用scanf()的函数读取文件就好了,因为大部分人学C,都是从scanf()开始学起,对scanf()应该很熟悉,这样,你需要freopen()这个函数,这个函数的功能就是让你像读取用户输入一样去读取文件。先看程序
#include<stdio.h>
main()
{
 char in[20];
 FILE *fp;                              //定义一个文件指针
 fp=freopen("c:\\a.txt","r",stdin);                      //打开文件流
 scanf("%s",in);
 printf("%s",in);
}
这样子,你就可以像读取键盘输入一样去读取文件流中的东西。说一下参数,freopen()有三个参数,第一个是文件的位置,第二个是文件读取的方法,"r"书读取,"w"是写入,第三个参数是说明这个流是读取流还是写入流,stdin就是标准输入流,stdout就是标准输出流,这里程序的 printf("%s",in);语句不是输出到文件中,因为打开的输入流,而不是输出流,所以printf()语句是输出到屏幕的。
第二个:scanf()函数读取空格
scanf("%s",in)语句是读取到有空格,回车或是tab就会停下来,但是很多时候都还是要吧空格或者tab读取到字符串中,scanf()还是能做到的,scanf("%[^\n]",&input);注意格式字符串是很特别的"%[^\n]",这个语句能把空格和tab也读取到字符串中,直到遇到回车。我们改一下上面的程序就可以了。
#include<stdio.h>
main()
{
 char in[20];
 FILE *fp;
 fp=freopen("c:\\a.txt","r",stdin);
 scanf("%[^\n]",&in);
 printf("%s",in);
}
希望这两个函数可以解决你的文件读写问题!