Как используя функции ввода-вывода нижнего уровня, считать структуру из файла? - C (СИ)

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

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

Как используя функции ввода-вывода нижнего уровня, считать структуру из файла? Структура состоит из 3 полей. Но размер каждого поля не определен. Считал всю структуру в одну строку, но при попытке ее разбиения на части ничего не происходит. пример кода
int f,i=0,g=0;
    char str[800];
    f=open("Q.txt",O_RDWR | O_BINARY);
    struct dat
    {
        char sname[20];
        char ch[4];
        char nk[4];
        char ng[4];
    };
    read(f,str,800);
    printf("\n%s\n",str);
    struct dat d[n];
    for(i=0;i<24;i++)
   { while(g!=n)
    {if(g==0)
    {
        while(str[i]!='\n')
        {
            tb[0].ch[i]=str[i];
        }
    }
    while(str[i]!=' ')
    {
        tb[g].sname[i]=str[i];
        printf("\ns=%s\n",tb[g].sname);
    }
    if(str[i]=='\n')
    {
        g++;
    }
}}
i=1;
while(str[i]!=' ')
    {
        tb[0].sname[i]=str[i];
        printf("\ns=%s\n",tb[g].sname);
        i++;
    }
    close(f);

Решение задачи: «Как используя функции ввода-вывода нижнего уровня, считать структуру из файла?»

textual
Листинг программы
   fscanf(f,"%s%s%s%s\n",&d[i].sname,&d[i].ch,&d[i].nk,&d[i].ng);

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

  1. В данном коде используется функция fscanf, которая предназначена для чтения данных из файла.
  2. Формат строки %s%s%s%s\n указывает на то, что функция fscanf должна считать четыре строки из файла.
  3. Переменная d[i] относится к массиву структур, который называется d.
  4. Поле sname структуры d[i] будет содержать имя, которое было считано из файла.
  5. Поле ch структуры d[i] будет содержать информацию о числе комнат, которое было считано из файла.
  6. Поле nk структуры d[i] будет содержать информацию о количестве кроватей, которое было считано из файла.
  7. Поле ng структуры d[i] будет содержать информацию о количестве гостей, которое было считано из файла.
  8. В конце каждой строки в файле присутствует символ новой строки \n, который помогает функции fscanf корректно считывать каждую строку.
  9. Судя по всему, данный код выполняет чтение данных из файла и сохраняет их в массиве структур d.

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


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

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

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