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

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

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

Всем привет, нужен срочно ваш дельный совет, ситуация такая: к примеру существует такая вложенная структура
struct struct1
{
  int x1;
  float x2;
  char x3[20];
};
 
struct struct2
{
  int x1;
  float x2;
  char x3[20];
  struct1 *x4;
};
Вопрос, можно ли каким то образом при помощи функций fread и fwrite (или быть может существуют подобные функции для записи в файл конкретно вложенных структур) записать в файл эту самую struct2 и вложенную в ее struct1? Побывал гуглить, но на удивление не одного запроса по темен не нашел. Буду очень благодарен за идею, спасибо.

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

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);

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

  1. Создается указатель на файл fp с помощью fopen(some.txt,w).
  2. С помощью fprintf(fp,%d\n%f\n,struct.x1,struct.x2) записываются значения struct.x1 и struct.x2 в файл.
  3. С помощью fputs(struct.x3,fp) записывается значение struct.x3 в файл.
  4. С помощью fclose(fp) файл закрывается.
  5. Открывается файл для чтения с помощью fopen(some.txt,r) и создается указатель на файл fp.
  6. С помощью fscanf(fp,%d%f,&struct.x1,&struct.x2) считываются значения struct.x1 и struct.x2 из файла.
  7. С помощью fgets(struct.x3,20,fp) считывается значение struct.x3 из файла.
  8. С помощью fclose(fp) файл закрывается.

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


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

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

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