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

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

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

Как используя функции ввода-вывода нижнего уровня, считать структуру из файла? Структура состоит из 3 полей. Но размер каждого поля не определен. Считал всю структуру в одну строку, но при попытке ее разбиения на части ничего не происходит. пример кода
Листинг программы
  1. int f,i=0,g=0;
  2. char str[800];
  3. f=open("Q.txt",O_RDWR | O_BINARY);
  4. struct dat
  5. {
  6. char sname[20];
  7. char ch[4];
  8. char nk[4];
  9. char ng[4];
  10. };
  11. read(f,str,800);
  12. printf("\n%s\n",str);
  13. struct dat d[n];
  14. for(i=0;i<24;i++)
  15. { while(g!=n)
  16. {if(g==0)
  17. {
  18. while(str[i]!='\n')
  19. {
  20. tb[0].ch[i]=str[i];
  21. }
  22. }
  23. while(str[i]!=' ')
  24. {
  25. tb[g].sname[i]=str[i];
  26. printf("\ns=%s\n",tb[g].sname);
  27. }
  28. if(str[i]=='\n')
  29. {
  30. g++;
  31. }
  32. }}
  33. i=1;
  34. while(str[i]!=' ')
  35. {
  36. tb[0].sname[i]=str[i];
  37. printf("\ns=%s\n",tb[g].sname);
  38. i++;
  39. }
  40. close(f);

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

textual
Листинг программы
  1.    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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы