C语言EOF和数组结合使用
时间: 2024-09-26 12:02:29 浏览: 25
在C语言中,当涉及到文件操作和数组时,`EOF`(End Of File)是一个特殊的值,它代表文件的结束。当你试图从文件中读取数据,而到达文件结尾时,`fgetc()`, `fgets()`, 或其他相应的输入函数通常会返回`EOF`。
当结合数组使用时,通常的做法是读取文件内容至数组中,直到遇到`EOF`为止。例如:
```c
#include <stdio.h>
#define MAX_LINES 100
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("Error opening file.\n");
return 1;
}
char lines[MAX_LINES][100]; // 存储最多100行,每行最多99字符
int i = 0;
while ((lines[i][0] != EOF) && (i < MAX_LINES - 1)) { // 避免超过数组界限
fgets(lines[i], sizeof(lines[i]), file);
lines[i][strcspn(lines[i], "\n")] = '\0'; // 去除换行符
i++;
}
fclose(file);
for (int j = 0; j < i; j++) {
printf("%s\n", lines[j]);
}
return 0;
}
```
在这个例子中,我们创建了一个数组来保存文件中读取的行,直到达到文件的末尾(`EOF`)或满数组为止。每个元素都是一行文本,最后遍历数组显示结果。
阅读全文