[转载]feof多输出的原因 多出FF
这是我在CSDN上看到的文章,刚才看到HJin的question about fputc and feof
下面鉴转载以下文章,以供大家分享学习
feof()大多用宏来实现:#define feof(f) ((f)->flags & _F_EOF)。
而_F_EOF是在fgetc,getc()等函数或宏读完最后一个字符读到末尾读不到东西了才进行置位的,此时get等即返回EOF,因此用!foef()进行循环时一般会多循环一次。
while(!feof(fp))
{
printf("%X",fgetc(fp));
printf("\n");
}
结果会多出FFFFFFFF
是因为最后返回EOF(-1 即FFFFFFFF)
正确的写法是
c=fgetc(fp);
while(!feof(fp))
{
printf("%X",c);
c=fgetc(fp);
}
----------------解决方案--------------------------------------------------------
回复:(栖柏)[转载]feof多输出的原因 多出FF
楼上的写法不太好吧,代码明显重复了----------------解决方案--------------------------------------------------------
回复:(栖柏)[转载]feof多输出的原因 多出FF
while(EOF != (c=fgetc(fp))){
printf("%X",c);
}
这样是不是简单不少呢?
----------------解决方案--------------------------------------------------------
转载地址:http://tag.csdn.net/tag/feof/1
更多……
----------------解决方案--------------------------------------------------------
Hi, brother, how did you get banned?
^_^
----------------解决方案--------------------------------------------------------
这个论坛有不少死于“原创”的冤魂 。现在正值严打时期,他还在管理员经常去的水区顶风作案。
2,3楼的帖子太花哨了吧,这里是讨论技术问题啊 。如果你担心以后再有人说Thinks brother,可以在签名中写上“我是女生,编程的女生”,哈哈
----------------解决方案--------------------------------------------------------