在c中读取文件结束

时间:2011-02-18 18:28:19

标签: c

我的程序正在从infile读取最后一行数据两次。当我执行程序时,最后一行数据被打印两次。请帮我!这是代码,

while ( !feof ( in ) ) {
//fread();
}

我希望这是因为feof功能而发生的。

我不想使用fgetsgetline。还有其他方法吗?请指导我。

感谢所有回复我的人!我得到了解决方案!我在fgetc循环旁边使用了unfgetcdo

以下是代码:

int ch;
ch=fgetc(fp);
do
{
ungetc(ch,fp);
//fread();

ch=fgetc(fp);
} while( (ch = fgetc(fp)) != EOF && ch != '\n' );

2 个答案:

答案 0 :(得分:1)

你必须使用do ... while循环才能在c。

中正确使用feof()
if (!feof()) // in case the file is zero length.
{
  do
  {
       //whatever....          
  } while(!feof())
}

答案 1 :(得分:1)

试试这个!使用fscanf进行输入操作。

while(fscanf(stdin, "%s", in) != EOF) {
//your code
}