1. 主页
  2. 文档
  3. C语言教程
  4. C语言文件处理
  5. C 中的 EOF、getc() 和 feof()

C 中的 EOF、getc() 和 feof()

在 C/C++ 中,getc()在到达文件末尾时返回 EOF。getc() 失败时也会返回 EOF。因此,仅将 getc() 返回的值与 EOF 进行比较不足以检查文件的实际结尾。为了解决这个问题,C 提供了feof(),它仅在到达文件末尾时返回非零值,否则返回 0。
例如,考虑以下 C 程序在屏幕上打印文件test.txt的内容。在程序中,getc() 的返回值首先与 EOF 进行比较,然后再使用 feof() 进行检查。通过进行此检查,我们确保程序仅在到达文件结尾时才打印“到达文件结尾”。如果 getc() 由于任何其他原因返回 EOF,则程序将打印“出问题了”


#include <stdio.h>

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;
}

 

这篇文章对您有用吗?