fgetc()
函数确实返回EOF
。这是否意味着没有更多的数据可用呢?FILE *inf = ...;
int ch;
while ((ch = fgetc(inf)) != EOF) {
;
}
if (feof(inf)) puts("End-of-file");
else if (ferror(inf)) puts("Error");
else puts("???");
只用feof(), ferror()
进行测试是否足够?
注意: 这里的EOF
是一个宏,其值为一些负数int
,通常为-1
。 它不是 end-of-file的同义词。
feof()
是ferror()
的补充,但这可能是一个有缺陷的假设。 - Neil