打开文本文件
使用fopen可以打开一个文件。fopen以某种指定模式(最常用的三种模式为r、w和a,分别代表读、写和附加)打开文件后,会返回一个文件指针,以后您就用这个文件指针访问这个文件。例如,您要打开一个文件并写入从1到10的数字,可以使用下面的代码:
#include
#define MAX 10
int main()
{FILE *f;int x;f=fopen("out","w");if (!f)
return 1;for(x=1; x<=MAX; x++)
fprintf(f,"%dn",x);fclose(f);return 0;}
这里的fopen语句使用w模式打开了一个文件名为out的文件。w是一种破坏性的写入模式,如果out文件不存在,则创建一个;如果out文件已经存在,新的out文件会将以前的out文件覆盖。fopen命令返回一个指向该文件的指针,并赋值给变量f。以后就用这个变量来代表文件。如果由于某种原因无法打开文件,则f的值为NULL。
主函数返回值
上面这个程序是本教程中第一个从主函数返回错误代码的程序。如果fopen命令失败了,f的值将是NULL (0)。我们用if语句检查这个错误。if语句将检查变量f的布尔值。前面讲过,在C语言中,0代表假,其他的任何值代表真。所以如果打开文件时出现了错误,f的值就是零,即为假。!是逻辑非运算符,它将一个布尔值取反。于是上面的那个if语句也可以这样写:
if (f == 0)
两者是等价的。不过if (!f)更常见一些。
如果出现了文件错误,我们让主函数返回1。在UNIX下,您其实可以在命令行中检查这个返回值。有关详细信息,请参见命令解释程序的文档。
fprintf语句看起来很眼熟吧:它和printf一样,但是用文件指针作为第一个参数。操作结束后用fclose语句关闭文件。