我的程序正在从infile读取最后一行数据两次.当我执行程序时,最后一行数据被打印两次.请帮我!这是代码,
while ( !feof ( in ) ) {
//fread();
}
我希望这是因为feof功能.
我不想使用fgets或getline.还有其他方法吗?请指导我.
感谢所有回复我的人!我得到了解决方案!我在f循环中使用了fgetc和unfgetc.
这是代码:
int ch;
ch=fgetc(fp);
do
{
ungetc(ch,fp);
//fread();
ch=fgetc(fp);
} while( (ch = fgetc(fp)) != EOF && ch != '\n' );
最佳答案 你必须使用do … while循环才能在c中正确使用feof().
if (!feof()) // in case the file is zero length.
{
do
{
//whatever....
} while(!feof())
}