fscanf не может прочитать значения - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь прочитать текстовый файл с помощью fscanf. Я работаю в Eclipse в OpenCV на Ubuntu.Вот некоторые примеры значений в текстовом файле.кода, который читает значения

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 ]

3 голосов
/ 13 января 2012

testd[i][0] и т. Д. Является значением. Что вам нужно, это &testd[i][0].

1 голос
/ 13 января 2012

Первый цикл использует файл. Попробуйте rewind(fid1); между циклами.

Редактировать: альтернативно, в качестве опции может быть немного более трудоемким, но вдвое быстродействующим, сделать один цикл, читая, пока нет больше данных.

0 голосов
/ 23 марта 2016

Я думаю, вы не перемещаете указатель файла в начальную точку файла. Используйте библиотеку fseek (fp, 0, 0) или Попробуйте закрыть файл и затем снова открыть.

...