使用fscanf复制最后一行文件

时间:2014-12-31 07:46:35

标签: c

我正在尝试打印history.txt文件中的内容。

工作正常。问题是最后一部分,它打印最后一行两次。

示例输出:

abcd1234 12/31/2014 03:28:20 PM 5.00 0.00 // this will be printed twice
abcd1234 12/31/2014 03:28:20 PM 5.00 0.00 // here 

这是我用来阅读和打印文件的部分。

  while(!feof(fp))
        {
            fscanf(fp,"%s %s %s %s %f %f",code,hodate,hitime,distime,&deb1,&cre1);
            if(strcmp(code,x.accnum)==0)
            {
                if(strcmp(hodate,currentdate)==0)
                {
                    printf("%s\t%s\t%.2f\t%.2f\n",hodate,hitime,deb1,cre1);

                }
            }

        }

1 个答案:

答案 0 :(得分:4)

像这样使用feof()是错误的。

while (fscanf(hist, "%s %s %s %s %f %f", acR, hdate, htime, dis, &deb, &cre) == 6)
    {
    // Put your code here
    }