函数名
feof功 能
检测流上的文件结束符用 法
int feof(FILE *stream);程序例
#include <stdio.h>feof()可以用EOF代替吗?不可以。fgetc返回-1时,有两种情况:读到文件结尾或是读取错误。因此我们无法确信文件已经结束, 因为可能是读取错误! 这时我们需要feof()。
注意:
即使文件是空的,也要再读一次,feof函数值才会变为真。
因为只有读出所有的数据之后,再读一次,函数feof(fp)的返回值才为真。
要想正常读取:
#include<stdio.h> #include<stdlib.h> main() { FILE *fp; int a; if((fp=fopen("c:\\number.txt","r"))==NULL) { printf("文件打开失败!\n"); exit(0); } fscanf(fp,"%d",&a); while(!feof(fp)) /*等价于while(feof(fp)==0)*/ { printf("%d ",a); fscanf(fp,"%d",&a); } fclose(fp); }