我有一个简单的代码:
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()循环时,也会出现此问题
另外,我该如何避免这个问题?