我有一个文本文件。我正在编写一个程序,使用fgetc从文件中读取内容,并将其放入二维缓冲区中。
打印完文件的内容后,尽管已经检查了EOF和ERROR,但仍会打印一些垃圾直到缓冲区结束,如下所示。我该怎么办?
unsigned char ch;
while(ch=fgetc(fp))
{
if(ch== EOF || ch==NULL)
break;
//OTHER INSTRUCTIONS
}
谢谢 :)
EOF
是具有值的整数-1
。
当你ch=fgetc(fp)
在while循环,你读入unsigned char
,可通过定义不签字,所以不能等于-1
。
一个解决方案可能是读入一个整数并在检查了之后将其强制转换EOF
。
int ch;
while(ch=fgetc(fp))
{
if(ch == EOF)
break;
//OTHER INSTRUCTIONS
}
请参考此示例以了解应如何实施。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句