读取文本文件
若要读取一个文件,请使用r模式打开。一般来说,读取文件时最好不要用fscanf,因为,除非文件的数据格式非常标准,否则fscanf并不能准确地读取数据。请换用fgets一次读入一行,然后分析提取所需数据。下面的代码演示了一个读入文件并在屏幕上显示其内容的过程:
#includeint main(){FILE *f;char s[1000];f=fopen("infile","r");if (!f)return 1;while (fgets(s,1000,f)!=NULL)printf("%s",s);fclose(f);return 0;}
fget函数在遇到文件结束符eof时会返回NULL。程序依次读入各行(本例中最长1,000个字符)并将其在标准输出设备上显示。注意,printf语句的格式字符串中并不包含 ,这是因为fgets会在它读入的每一行末尾加上一个 。所以,若某行的长度超出了限制(由fgets的第二个参数指定),您会发现它将不能被完整地显示。
C 常见错误不要把fclose误输入成close。close函数是存在的,所以误输入成close也能通过编译。如果只是打开或关闭几个文件的话,程序甚至还表现为正常工作的样子。但是,如果是在一个循环中打开和关闭文件的话,程序最后就会因耗尽可用的文件句柄或内存空间而崩溃,因为close没有正确地将文件关闭。