feof

admin 27 0

`feof` 是 C 语言中的一个函数,用于检查文件流是否已经到达文件末尾。

函数的原型如下:

```c

int feof(FILE *stream);

其中,`stream` 是一个文件流指针,通常是通过 `fopen` 函数打开文件后返回的指针。

`feof` 函数返回一个整数值:

* 如果文件流已经到达文件末尾,则返回非零值(通常是1)。
* 如果文件流尚未到达文件末尾,则返回0。

这个函数通常用于循环读取文件的场景,以确定何时停止读取。

示例:


```c
#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
        return 1;
    }

    char buffer[100];
    while (!feof(file)) {
        size_t bytesRead = fread(buffer, sizeof(char), sizeof(buffer), file);
        fwrite(buffer, sizeof(char), bytesRead, stdout);
    }

    fclose(file);
    return 0;
}

使用 `feof` 来检查是否到达文件末尾可能不是最佳实践,因为 `feof` 只有在尝试读取文件并遇到 EOF(End-of-File)之后才会返回非零值,这意味着,如果你在循环中直接使用 `feof` 进行检查,可能会错过文件的最后一个元素或字节,更好的做法是使用循环来读取文件,并在读取操作后检查返回的字节数是否为0,以确定是否已经到达文件末尾。