`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,以确定是否已经到达文件末尾。