判断文件结尾的方法(feof函数和EOF)

当以文本方式读写文件时,可以用EOF判断文件是否结尾,因为EOF=-1,而字符的ASCII码不可能为负数。
例如,当fp为文本方式读取的指针时

getc(fp)!=EOF

【判断文件结尾的方法(feof函数和EOF)】可判断是否读到文件结尾
当以二进制方式读写文件时,只能用feof函数判断,因为二进制读取数值,可能为负。
feof函数原型为
int feof(FILE *stream)

当未读到结尾时,返回值为0,读到结尾时,返回值为1
feof不仅适用于二进制打开,文本方式打开也适用
注意:只有读出所有的数据之后,再读一次,函数feof(fp)的返回值才为真
因此,当要统计文件大小时,sizef应该-1
int sizefile(FILE *fp) { int sizef=0; while(!feof(fp)) { fgetc(fp); sizef++; } rewind(fp) //使得文件指针重新指向开头 return sizef-1; }

    推荐阅读