<分区>
我一直用这个方法
int c;
while ((c = fgetc(fp))!=EOF)
{
printf("%c", c);
}
因为在我看来它更具可读性和健壮性。但是对于我的回答link , chux评论说
if ( feof(fp) ) is more robust than int c; while ((c = fgetc(fp))!=EOF)
作为
while(1)
{
c = fgetc(fp);
if ( feof(fp) )
{
break ;
}
printf("%c", c);
}
比第一个版本更健壮。那么我应该使用什么版本呢?请解释为什么那个版本更好。
编辑
有问题Why is “while ( !feof (file) )” always wrong?有人问为什么控制循环中的feof()总是出错。但是以正确的方式在 if 条件下检查 feof()
总是错误的?解释是可观的。