定义一个FILE类型指针fp,用于文档操作;其函数均在stdio.h头文件里面
FILE* fp = fopen("C:\\Users\\LXG\\Desktop\\车俩信息.txt","r");
文档权限
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
fgetc()、fgets()、fscanf()的区别
①ch = fgetc(fp);
② fgets(buf, sizeof(buf), fp);
buf为一个字符数组,sizeof(buf)获取字符数组的大小。
③fscanf("路径","%s",fp); 或者将%s换为%d均可以。
feof()
while(!feof(fp)) , 判断文档是否读完 (补充一点'\n'是一个字符)
PS: EOF和feof()的区别,EOF用于文件输入,通常判断一个函数是否成功,其表示是Control + z.
while
(
scanf
(
"%d"
,&n)!=EOF),其值通常表示为-1.也以为如此,其不可以用于文档的结尾,文档存储一般是二进制,所有有了feof()函数。
fclose()
如果不关闭文件,可能会丢失数据。因为在向文件写数据时,实现将数据输到缓冲区,待缓冲区充满后才正式输出给文件,如果当数据未充满缓冲区而程序结束运行,就会将缓冲区中的数据丢失。用fclose函数关闭文件,他先将缓冲区中的数据输出到磁盘文件然后才释放文件指针变量,从而避免了数据丢失。
关闭文档; 若关闭已经关闭的文档可能导致程序崩溃。此时fclose(fp)释放的是野指针,这很危险的