Как используя функции ввода-вывода нижнего уровня, считать структуру из файла? - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д