C编译器如何在读取时检测到文件已到达末尾?用程序解释。
feof() 是C语言的文件处理功能,用于查找文件结尾。
我们用于查找文件结尾的逻辑如下-
fp = fopen ("number.txt", "r"); //打开一个文件 printf ("file content is\n"); for (i=0;i<=100;i++){ n = getw(fp); //读取每个数字并存储在n中 if(feof(fp)) //如果文件指针到达末尾,它将中断{ printf ("reached end of file"); break; }else{ printf ("%d\t", n); } }
以下是该feof()功能的C程序-
#include<stdio.h> int main(){ FILE *fp; int i,n; fp = fopen ("number.txt", "w"); for (i=0;i<=100;i= i+10){ putw(i,fp); } fclose (fp); fp = fopen ("number.txt", "r"); printf ("file content is\n"); for (i=0;i<=100;i++){ n = getw(fp); if(feof(fp)){ printf ("reached end of file"); break; }else{ printf ("%d\t", n); } } return 0; }输出结果
执行以上程序后,将产生以下结果-
file content is 0102030405060708090100reached end of file