реклама на сайте
подробности

 
 
> Чтение из файла данных на си, Необходимо считать числа из файла
shtunder
сообщение Mar 14 2017, 02:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 14-07-14
Пользователь №: 82 243



Добрый день.

Есть файл 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 элемента
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 11:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016