首页 > 编程笔记

C语言feof():检测是否到达文件末尾

feof() 是 C语言的一个标准库函数,定义在<stdio.h>头文件中。

feof() 用于检测文件流是否到达了文件末尾(EOF),函数的原型如下:
int feof(FILE *stream);

参数

stream 是一个指向 FILE 类型的指针,表示要检查的文件流。

返回值

如果文件流位于文件末尾,则该函数返回非零值。否则,返回零。

注意,feof() 仅在尝试读取已到达文件尾之后的数据时才返回非零值,仅到达文件尾但未尝试读取的情况下,并不会导致 feof() 返回非零值。

【实例】下面是一个C语言示例代码,演示了如何使用 feof() 函数:
#include <stdio.h>

int main() {
    FILE *file;
    char ch;

    // 以读取模式打开文件
    file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("文件打开失败");
        return 1;
    }

    // 循环读取文件,直到到达文件尾
    while (1) {
        ch = fgetc(file);
        if (feof(file)) {
            break; // 如果到达文件尾,跳出循环
        }
        printf("%c", ch); // 打印字符
    }

    // 关闭文件
    fclose(file);

    return 0;
}
在这个示例中,使用 fopen() 以读取模式打开一个文件,然后使用 fgetc() 在循环中逐字符读取文件的内容。当 feof() 检测到文件尾时跳出循环,最后使用 fclose() 关闭文件。

推荐阅读