【发布时间】:2014-05-07 09:30:17
【问题描述】:
我有一个文本文件。我正在编写一个程序以使用 fgetc 从文件中读取并放入二维缓冲区。
在打印文件的内容后,它会打印一些垃圾,直到缓冲区结束,尽管已经检查了 EOF 和 ERROR,如下所示。我怎样才能完成它?
unsigned char ch;
while(ch=fgetc(fp))
{
if(ch== EOF || ch==NULL)
break;
//OTHER INSTRUCTIONS
}
谢谢:)
【问题讨论】:
-
可以尝试将
unsigned char更改为char吗?EOF为 -1,因此不能存储在unsigned类型中。 -
@rcs
fgetc()的正确返回类型当然是int,关键是该类型需要足够大以容纳每个有效字符,和EOF不是字符。