Как правильно записывать в файл вложенные структуры? - C (СИ)
Формулировка задачи:
Всем привет, нужен срочно ваш дельный совет, ситуация такая:
к примеру существует такая вложенная структура
Вопрос, можно ли каким то образом при помощи функций fread и fwrite (или быть может существуют подобные функции для записи в файл конкретно вложенных структур) записать в файл эту самую struct2 и вложенную в ее struct1? Побывал гуглить, но на удивление не одного запроса по темен не нашел. Буду очень благодарен за идею, спасибо.
struct struct1
{
int x1;
float x2;
char x3[20];
};
struct struct2
{
int x1;
float x2;
char x3[20];
struct1 *x4;
};Решение задачи: «Как правильно записывать в файл вложенные структуры?»
textual
Листинг программы
FILE *fp;
//write
fp=fopen("some.txt","w");
fprintf(fp,"%d\n%f\n",struct.x1,struct.x2);
fputs(struct.x3,fp);
fclose(fp);
//read
fp=fopen("some.txt","r");
fscanf(fp,"%d%f",&struct.x1,&struct.x2);
fgets(struct.x3,20,fp);
fclose(fp);
Объяснение кода листинга программы
- Создается указатель на файл
fpс помощьюfopen(some.txt,w). - С помощью
fprintf(fp,%d\n%f\n,struct.x1,struct.x2)записываются значенияstruct.x1иstruct.x2в файл. - С помощью
fputs(struct.x3,fp)записывается значениеstruct.x3в файл. - С помощью
fclose(fp)файл закрывается. - Открывается файл для чтения с помощью
fopen(some.txt,r)и создается указатель на файлfp. - С помощью
fscanf(fp,%d%f,&struct.x1,&struct.x2)считываются значенияstruct.x1иstruct.x2из файла. - С помощью
fgets(struct.x3,20,fp)считывается значениеstruct.x3из файла. - С помощью
fclose(fp)файл закрывается.