打开文件的本质是为文件分配文件缓冲区
关闭文件的本质是释放文件缓冲区。
操作文件必须遵守的步骤是 打开文件―>读写文件-->关闭文件
文件打开函数fopen()
使用形式
FILE *fp;
fp = fopen(文件名,文件使用方式);
文件名:需要打开文件的名称(字符串)
文件使用方式:是具有特定含义的符号。
exit 包含在头文件 stdlib.h
exit 函数的作用是结束程序的执行,并将实参0作为函数返回值传递给操作系统
只写方式 :为写(输出)文本文件打开文件。
若文件不存在,则建立一个新文件;若文件存在,则将文件删去,重建一个新文件。
若向一个已经存在的文件中追加新的信息,只能用“a”的方式打开文件。文件不存在,则新建
用“r”方式打开文件只能向内存中输入数据,不能用“r”方式打开不存在的文件,否则出错。
用“a”方式打开的文件只能在文件末尾添加数据。打开时位置指针指向文件末尾。
文件关闭成功,返回0,否则非零
fILE *fp;
fclose(fp);
几点解释:
在程序中,如果一个文件使用完毕,若用r模式打开,可以不必做关闭文件,
但若用w,一定要用fclose,否则最后放在文件缓冲区的数据无法写回文件,发生数据丢失现象,
这是因为,在向文件写数据时,是现将数据写到文件缓冲区,待文件缓冲区充满后再整块传送到磁盘文件中如果文件结束时,
缓冲区没有充满,则其中的数据没有传到磁盘上,必须使用fclose函数关闭文件,强制系统将文件缓冲区的所有数据传送到磁盘上,并释放 文件指针变量
文件结束测试函数 feof
调用形式
FILE *fp;
feof(fp);
函数原型 int feof (FILE *fp);
文件结束 返回 1 否则返回0;
fputc 函数原型 int fputc (char ch ,FILE *fp)
如果被写入的字符用写读写方式打开一个已经存在的文件时 将清除所有原来的文件内容,写入字符从文件首部开始,
如果被写入的文件不存在则新建。
每写入一个字符 ,文件内部指针在向后移动一个字节。
写入成功返回写入的字符 否则返回EOF(-1);
函数原型 int fgetc(fp);功能是:读取文件指针目前所指的字符,读取完毕,文件指针自动往后移一个字符位置,若文件指针已经到文件末尾,返回-1;
eg:ch = fgetc(fp);
fgetc几点说明:
1)在fgetc函数调用时,读取的文件必须用读或者读写方式打开的 r r+ rb+;