我的程序正在从infile读取最后一行数据两次。当我执行程序时,最后一行数据被打印两次。请帮我!这是代码,
while ( !feof ( in ) ) {
//fread();
}
我希望这是因为feof
功能而发生的。
我不想使用fgets
或getline
。还有其他方法吗?请指导我。
感谢所有回复我的人!我得到了解决方案!我在fgetc
循环旁边使用了unfgetc
和do
。
以下是代码:
int ch;
ch=fgetc(fp);
do
{
ungetc(ch,fp);
//fread();
ch=fgetc(fp);
} while( (ch = fgetc(fp)) != EOF && ch != '\n' );
答案 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
}