Добрый день.
Есть файл file.dat
Не могу из него считать числа. Необходимо считывать по 4096 чисел.
Вот что у меня на данный момент.
CODE
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int i = 0;
char arr[20];
double S[4096];
FILE *file;
if((file = fopen("file.dat", "r")) == NULL)
{
puts("File could not be found");
return 1;
}
while ((fgets(arr, 20, file) != NULL) && i < 4096)
{
fseek (file,21*(i+2)-20,SEEK_SET); //Здесь вся проблема. Когда i = 4096, обнуляю i. Опять с самого начала файла читает 4096 чисел. Как решить эту проблему нет идей
double c = atof(arr);
printf("%.4f\n", c);
S[i] = c;
if(i == 4096)
{
i = 0;
}
}
fclose(file);
return 0;
}
file.dat загрузить не получилось. Он генерится в матлабе:
Код
dlmwrite('file.dat', A(repeat,:), '-append', 'delimiter', ' ', 'precision', '%20.4f')
Просто скину пару значений:
Код
0.0000 1.6406 3.5000 5.4063 100.2813 100.5625
0.0000 1.8906 3.2969 4.8594 99.6094 99.5781
0.0000 1.4219 3.0313 4.6563 101.3594 101.1875
Т.е. необходимо считывать первую строку, потом вторую и т.д. Если важно, то в каждой строке 8192 элемента