如何获取文件中的浮点数?

时间:2012-01-27 12:04:44

标签: c file floating-point numbers lines

我有一个带浮点数的文件,这是一个例子:

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。有什么问题?

1 个答案:

答案 0 :(得分:5)

您不会检查fscanf是否读过浮点数。使用它返回它读取的项目数的事实。

此外,请勿阅读FILE*。阅读float*

此代码应该有效:

float o;
int i,size=0;
while ((i=fscanf(f,"%f",&o))!=EOF) size+=i;