fscanf无法读取值

时间:2012-01-12 20:17:03

标签: c ubuntu file-io scanf

我正在尝试使用fscanf读取文本文件。我在ubuntu上的OpenCV中使用eclipse。 以下是文本文件中的一些示例值 0 5 7 0.547619047619048 1 0.0274509803921569 1 0 6 8 0.541666666666667 1 0.0313725490196078 1 0 8 10 0.533333333333333 1 0.0392156862745098 1

但是所有fscanf读取都是数组中的零。这是读取值的代码的一部分

long double testd[1000][6]
FILE* fid1=fopen("file","r");

while((fscanf(fid1,"%Lf",&b))==1)
{

    printf("%Lf\n",b);
    testsamplecount=testsamplecount+1;
}

for (i=0;i<testsamplecount/6;i++)
{
    fscanf(fid1,"%Lf %Lf %Lf %Lf %Lf %Lf",
                &testd[i][0],&testd[i][1],
                &testd[i][2],&testd[i][3],
                &testd[i][4],&testd[i][5]);      
}

3 个答案:

答案 0 :(得分:3)

testd[i][0]等是一个右值。你需要的是&testd[i][0]

答案 1 :(得分:1)

第一个循环使用该文件。在循环之间尝试rewind(fid1);

编辑:或者,作为一个选项可能稍微费力但是性能提高一倍,做一个循环,阅读直到没有更多数据。

答案 2 :(得分:0)

我认为您不会将文件指针移动到文件的起始点。 使用库fseek(fp,0,0)或 尝试关闭该文件,然后再次打开。