目录
判定文件读取结束的方式
被错误使用的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 当读取失败或者遇到文件末尾的时候,返回EOF
while (fgetc(pf) != EOF)
{
;
}
// 判断是什么原因结束的
if (ferror(pf) != 0)
{
// 说明是发生错误结束的
perror("ferror");
return -2;
}
else if (feof(pf) != 0)
{
// 说明是遇到了文件末尾才结束
printf("成功遇到了文件末尾\n");
}
// 关闭文件
fclose(pf);
pf = NULL;
return 0;
}
代码验证: