目录
判定文件读取结束的方式
被错误使用的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;
}代码验证:



















