使用feof()

时间:2018-03-28 13:14:09

标签: c

我有一个简单的代码:

f = fopen("tdat.dat","r");

for(int i=0;;i++)
{
    if(feof(f)) break;
    fscanf(f,"%lf%lf%lf%lf",&x,&y,&z,&t);
    printf("%lf\t%lf\t%lf\t%lf\n",x,y,z,t);
}

和我的数据文件tdat.dat如下:

1.2 0.8 2.1 30.0
1.5 2.3 4.5 15.0
0.3 1.6 1.5 21.0

当我运行程序时,结果是:

1.200000    0.800000    2.100000    30.000000
1.500000    2.300000    4.500000    15.000000
0.300000    1.600000    1.500000    21.000000
0.300000    1.600000    1.500000    21.000000

我的问题是:为什么结果中的额外行与上一行相同? (当我使用“while()”循环而不是for()循环时,也会出现此问题

另外,我该如何避免这个问题?

0 个答案:

没有答案