Как используя функции ввода-вывода нижнего уровня, считать структуру из файла? - 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);
Объяснение кода листинга программы
- В данном коде используется функция
fscanf
, которая предназначена для чтения данных из файла. - Формат строки
%s%s%s%s\n
указывает на то, что функцияfscanf
должна считать четыре строки из файла. - Переменная
d[i]
относится к массиву структур, который называетсяd
. - Поле
sname
структурыd[i]
будет содержать имя, которое было считано из файла. - Поле
ch
структурыd[i]
будет содержать информацию о числе комнат, которое было считано из файла. - Поле
nk
структурыd[i]
будет содержать информацию о количестве кроватей, которое было считано из файла. - Поле
ng
структурыd[i]
будет содержать информацию о количестве гостей, которое было считано из файла. - В конце каждой строки в файле присутствует символ новой строки
\n
, который помогает функцииfscanf
корректно считывать каждую строку. - Судя по всему, данный код выполняет чтение данных из файла и сохраняет их в массиве структур
d
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д