目录
判定文件读取结束的方式
被错误使用的feof函数
判定文件结束的正确使用
判定文件读取结束的方式
判断文本文件是否读取结束:
利用 fgetc 判断返回值是否为 EOF
利用 fgets 判断返回值是否为 NULL
判断二进制文件是否读取结束:
利用 fread 判断返回值是否小于实际要读的个数
被错误使用的feof函数
在文件读取过程中,不能用 feof 函数的返回值直接判断文件是否结束
frof 函数的作用是:
当文件读取结束时,判断时读取结束的原因是否是:遇到了文件末尾才结束
判定文件结束的正确使用
代码演示:
#include<stdio.h>
int main()
{// 以读的方式打开 "text.txt" 文件FILE* pf = fopen("text.txt", "r");// 判断是否成功打开if (pf == NULL){perror("fopen");return 0;}// fgetc 当读取失败或者遇到文件末尾的时候,返回EOFwhile (fgetc(pf) != EOF){;}// 判断是什么原因结束的if (ferror(pf) != 0){// 说明是发生错误结束的perror("ferror");return -2;}else if (feof(pf) != 0){// 说明是遇到了文件末尾才结束printf("成功遇到了文件末尾\n");}// 关闭文件fclose(pf);pf = NULL;return 0;
}
代码验证: