Вывод данных из файла - C (СИ)

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

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

Здравствуйте! Не могу понять, почему функцией fscanf не выводятся данные из файла. Возвращает ошибку и отдельное окно открывается. Также много варнингов типа warning: format '%d' expects argument of type 'int *', but argument 10 has type 'int' Вносил данные с помощью fprintf, они отображаются в файле. Структура данных - двусвязный список.
void PrintList(void)
{
    fp = fopen("c:\\Users\\Andrew\\Desktop\\Kyrsovaia\\list.txt", "r");
 
   APTEKA* pel = head;
 
   /* Вывод таблицы */
    /* вывод заголовков */
    printf("|---------------------------------------------------------------------------------------------|\n");
    printf("|Препараты Аптеки                                                                             |\n");
    printf("|---------------------------------------------------------------------------------------------|\n");
    printf("| Название    |     Группа    |   Форма   |  Доза  |  Дата выпуска  |  Срок годности |  Цена  |\n");
    printf("|-------------|---------------|-----------|--------|----------------|----------------|--------|\n");
 
   while (!feof(fp))
   {
 
    /* вывод строк фактических данных */
    fscanf(fp, "|%13s|%15s|%11s|%8.2f|    %2d.%2d.%d  |   %2d.%2d.%d   |%8.2f|\n", pel->inf.name, pel->inf.group, pel->inf.form, pel->inf.doza, pel->inf.day1, pel->inf.month1, pel->inf.year1,pel->inf.day2, pel->inf.month2, pel->inf.year2, pel->inf.price);
    printf("|-------------|---------------|-----------|--------|----------------|----------------|--------|\n");
 
       pel=pel->next;
   }
   printf("|                                                                                             |\n");
   printf("|---------------------------------------------------------------------------------------------|\n");
 
   fclose(fp);
}
Спасибо.

Решение задачи: «Вывод данных из файла»

textual
Листинг программы
printf("%s", pel->inf.name);
scanf("%s", &(pel->inf.name));

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

  1. В данном коде используется функция printf для вывода строки.
  2. Форматирование строки включает в себя только одно место для вывода, поэтому мы используем %s для указания на это место.
  3. В качестве вывода используется значение переменной pel->inf.name.
  4. Для чтения строки используется функция scanf.
  5. В качестве ввода используется то же место, что и для вывода, поэтому мы используем то же форматирование %s.
  6. В качестве ввода используется переменная pel->inf.name.
  7. Обратите внимание, что для использования адреса переменной в scanf, мы используем символ амперсанд (&) перед переменной.

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


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

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

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