文件读取结束可以通过feof函数进行判定。feof函数用于检测文件流上的结束标志。当文件末尾已经读取,feof函数返回非零值;否则返回0。
文件读取结束的原因可能有:
1.文件遇到末尾
2.文件发生错误
#include<stdio.h>
int main()
{
FILE* pf = fopen("text.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
int ch;
while ((ch = fgetc(pf)) != EOF)
{
// 处理读取的字符
if (feof(pf))
{
printf("文件读取结束\n");
}
else
{
printf("文件读取出错\n");
}
}
fclose(pf);
pf = NULL;
return 0;
}
所以在文件读取过程中,不能用feof函数的返回值直接来判断文件的是否结束。feof 的作用是:当文件读取结束的时候,判断是读取结束的原因是否是:遇到文件末尾结束
1. 文本文件读取是否结束,判断返回值是否为EOF(fgetc ),或者NULL(fgets )
例如:
• fgetc 判断是否为 EOF .
• fgets 判断返回值是否为NULL .
2. 二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如:
• fread判断返回值是否小于实际要读的个数。