C语言读文件结束

C语言读文件结束教程

C 语言 中,我们在使用 fgetc 函数读取 文件 时,如果读取到了文件的结尾,那么会返回 EOF,但是如果读取出错,同样返回 EOF。

因此,我们就需要判断 fgetc 返回的 EOF 到底是错误还是到了文件结尾,这时,C 语言为我们提供了 feof 函数ferror 函数用来判断到底是到了文件结束还是读取到了文件尾。

C语言feof函数详解

定义

feof() 函数用来判断文件内部 指针 是否指向了文件末尾。

语法

int feof(FILE * fp);

参数

参数 描述
fp 打开文件返回的文件指针。

返回值

当指向文件末尾时返回非零值,否则返回零值。

头文件

feof 函数在 stdio.h 的头文件里面。

案例

判断文件结束

使用 feof 判断是否读取到了文件结尾

#include <stdio.h> #include <stdlib.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); FILE *fp = NULL; if ( (fp = fopen("c:\\1.txt", "rt")) == NULL ) { puts("Open file failed\n"); return; } else { puts("Open file success\n"); } char ch; while ( (ch = fgetc(fp)) != EOF) { putchar(ch); } printf("\n"); if (feof(fp)) { puts("Read file success\n"); } else { puts("Read file error\n"); } // todo int ret = fclose(fp); if (ret == 0) { puts("Close file success\n"); } else { puts("Close file failed\n"); } return 0; }

程序运行后,控制台输出如下:

07_c语言feof文件结束.png

我们首先,使用了 fopen 函数,打开了一个 c 盘的文件,打开成功后,我们使用打开后返回的 FILE 指针,并调用 fgetc 函数加上 while 循环,来进行读取文件。

读取文件结束后,我们使用了 feof 函数,判断是否读取到了文件结束,如果读取到了文件结束,则 feof 函数返回非 0,否则返回 0。

这里,我们看到,我们读取到了文件的结束。

C语言读文件结束总结

在 C 语言中,我们使用 fgetc 函数读取文件结束时,判断 fgetc 返回的 EOF 到底是错误还是到了文件结尾,这时,C 语言为我们提供了 feof 函数 和 ferror 函数用来判断到底是到了文件结束还是读取到了文件尾。