在C / C++中,到达文件末尾时,getc()返回EOF。如果失败,getc()也会返回EOF。因此,仅将getc()返回的值与EOF进行比较不足以检查文件的实际结尾。为了解决这个问题,C提供了feof(),仅当到达文件末尾时它才返回非零值,否则返回0。
例如,考虑使用下面的C程序在屏幕上打印文件test.txt的内容。在程序中,首先将getc()的返回值与EOF进行比较,然后使用feof()进行另一次检查。通过选中此复选框,我们确保仅在到达文件末尾时,程序才打印“文件末尾”。如果getc()由于任何其他原因返回EOF,则程序将显示“出了点问题”
#include
int main()
{
FILE *fp = fopen("test.txt", "r");
int ch = getc(fp);
while (ch != EOF)
{
/* display contents of file on screen */
putchar(ch);
ch = getc(fp);
}
if (feof(fp))
printf("\n End of file reached.");
else
printf("\n Something went wrong.");
fclose(fp);
getchar();
return 0;
}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。