feof函数是一种C语言标准库函数,用于检测流(stream)上的文件结束符(EOF)。
feof函数的返回值表示检测结果,如果文件结束,则返回非零值(通常是-1),否则返回0。
具体而言,当feof函数检测到流上的文件结束符时,它执行以下操作:
如果文件结束,则返回非零值(通常是-1)。
如果文件未结束,则返回0。
需要注意的是,feof函数判断文件结束是通过读取函数(如fread、fscanf等)返回错误来识别的。因此,在读取函数之后进行feof判断文件是否结束,可以确保正确的结果。
以下是一个示例代码,演示如何使用feof函数:
c
复制
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("Error opening file
");
return 1;
}
while (!feof(fp)) {
char ch;
if (fscanf(fp, "%c", &ch) != EOF) {
printf("%c", ch);
} else {
break;// 文件结束,退出循环
}
}
fclose(fp);
return 0;
}
在上述代码中,我们打开一个名为file.txt的文件,并使用while循环读取文件内容。在每次循环中,我们使用fscanf函数读取一个字符,并检查feof函数的返回值。如果feof函数返回非零值(通常是-1),则表示文件结束,我们退出循环。否则,我们将读取的字符输出到屏幕上。最后,我们关闭文件并返回0。