Запись действительных чисел из файла в линейный однонаправленный список - C (СИ)

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

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

помогите написать код на запись действительных чисел из файла в линейный однонаправленный список

Решение задачи: «Запись действительных чисел из файла в линейный однонаправленный список»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
 
struct TList
{
   int value;
   struct TList* next;
};
 
//----------------------------------------------//
struct TList* Push(struct TList** list, int value)
{
   struct TList* node = (struct TList*) malloc(sizeof(struct TList));
   node->value = value;
   node->next = *list;
 
   *list = node;
 
   return *list;
}
//----------------------------------------------//
void Print(struct TList* list)
{
   while (list)
   {
      fprintf(stdout, "%d ", list->value);
      list = list->next;
   }
}
//----------------------------------------------//
bool Load(const char* fname, struct TList** list)
{
   FILE* f = fopen(fname, "r");
 
   if (f == NULL)
   {
      return false;
   }
 
   int value = 0;
 
   while (feof(f) == false)
   {
      if (fscanf(f, "%d", &value) == 1)
      {
         Push(list, value);
      }
   }
 
   fclose(f);
 
   return true;
}
//----------------------------------------------//
 
int main(int argc, const char* argv[])
{
   if (argc != 2)
   {
      fprintf(stderr, "Usage: program <FILE>\n");
      return EXIT_FAILURE;
   }
 
   struct TList* list = NULL;
 
   if (Load(argv[1], &list) == false)
   {
      fprintf(stderr, "Error: file '%s' not load ...\n", argv[1]);
      return EXIT_FAILURE;
   }
 
   Print(list);
 
   return EXIT_SUCCESS;
}

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

В этом коде определен тип структуры TList, который представляет собой односвязный список, содержащий целочисленные значения. Затем определены две функции: Push и Print. Push добавляет новый узел в начало списка, а Print выводит значения всех узлов в консоль. Функция Load считывает файл построчно и добавляет каждое целочисленное значение в список, используя функцию Push. Функция возвращает true, если файл успешно прочитан и список успешно заполнен, и false в случае ошибки при открытии файла или чтении из него. В функции main создается пустой список и передается в функцию Load. Если файл успешно прочитан и список успешно заполнен, выводится список с помощью функции Print. В противном случае выводится сообщение об ошибке и программа завершается с кодом EXIT_FAILURE.

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


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

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

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