Работа с файлами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здрасьте! Есть файл (скрин скинул), в нем мне нужны только значения переменных. У меня получилось считать первую строку:
fscanf(m, "%*[^0-9]%f%*[^0-9]%f%*[^0-9]%d", &d_t, &k0, &T);
Но как поступить дальше я не знаю, ведь теперь, как я понимаю, переменные лучше организовать в структуру:
#define N 3
 
struct variable {
    float u,m,f,h;
}a[N];
Я начинаю паниковать

Решение задачи: «Работа с файлами»

textual
Листинг программы
#define N 3
 
struct variable {
    float u,m,f,h;
}a[N];
...
int Op = 0;
FILE *m;
...
      while (!feof(m)) {
        for (i = 0; i < N; i++) {
            fscanf(m,"%*[^0-9]%f", &a[i].u);
            Op += 1;
        }
        for (i = 0; i < N; i++) {
            fscanf(m, "%*[^0-9]%f", &a[i].m);
            Op += 1;
        }
        for (i = 0; i < N; i++) {
            fscanf(m, "%*[^0-9]%f", &a[i].f);
            Op += 1;
        }
        for (i = 0; i < N; i++) {
            fscanf(m, "%*[^0-9]%f", &a[i].h);
            Op += 1;
        }
        if (Op != 12) {
            puts("Некоторые данные отсутствуют");
            return -1;
        }
    }
...

Объяснение кода листинга программы

  1. Объявлен массив структур variable с именем a и размером N (3), где каждая структура содержит поля u, m, f и h типа float.
  2. Инициализирована переменная Op (обновляющаяся при чтении файла) и установлена в значение 0.
  3. Открыт файл m для чтения с помощью функции fopen.
  4. В цикле while происходит чтение данных из файла m с помощью функции fscanf.
  5. В каждой итерации цикла for считывается одно поле каждой структуры variable в массиве a.
  6. Переменная Op увеличивается на 1 после каждого успешного считывания поля.
  7. После каждой итерации цикла for проверяется, что все 12 полей были успешно считаны, и если это не так, выводится сообщение об ошибке и возвращается -1.
  8. После выхода из цикла while закрывается файл m с помощью функции fclose.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы