当前位置: 代码迷 >> C语言 >> [转载]feof多输出的原因 多出FF
  详细解决方案

[转载]feof多输出的原因 多出FF

热度:349   发布时间:2007-08-23 18:54:17.0
[转载]feof多输出的原因 多出FF

这是我在CSDN上看到的文章,刚才看到HJinquestion 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  输出  

----------------解决方案--------------------------------------------------------
回复:(栖柏)[转载]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,可以在签名中写上“我是女生,编程的女生”,哈哈

----------------解决方案--------------------------------------------------------