Есть файл 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;
}
#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
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 элемента