我有一个带浮点数的文件,这是一个例子:
0.01
0.24
0.08
0.15
0.7
0.22
0.05
0.28
0.4
0.44
0.8
0.55
现在我需要获得所有花车的数量(在这种情况下为12)。应避免空行。
我这样做了:
FILE *f, *junk;
if (MYTHREAD == 0) {
f = fopen ("dane.dat", "r");
junk = fopen ("/dev/null", "w");
for(size = 0; fscanf(f, "%f\n", junk) != EOF; ++size);
fclose(junk);
fclose(f);
}
它返回128 O_o。有什么问题?
答案 0 :(得分:5)
您不会检查fscanf
是否读过浮点数。使用它返回它读取的项目数的事实。
此外,请勿阅读FILE*
。阅读float*
。
此代码应该有效:
float o;
int i,size=0;
while ((i=fscanf(f,"%f",&o))!=EOF) size+=i;