Подтвердить что ты не робот

Написание структур в файл в c

Можно ли написать целую структуру в файл

Пример:

struct date {
    char day[80];
    int month;
    int year;
};
4b9b3361

Ответ 1

Можно ли написать целую структуру в файл

Ваш вопрос на самом деле записывает экземпляры struct в файл.

  • Для достижения этой цели вы можете использовать функцию fwrite.
  • Вам нужно передать ссылку в первом аргументе.
  • sizeof каждый объект во втором аргументе
  • Число таких объектов для записи в третьем аргументе.
  • Указатель файла в 4-м аргументе.
  • Не забудьте открыть файл в binary mode.
  • Вы можете читать объекты из файла, используя fread.
  • Осторожно с контентом, когда вы пишете/читаете в маленьких системах и читаете/пишете в системах с большим эндиансом и наоборот. Прочитайте how-to-write-endian-agnostic-c-c-code

    struct date *object=malloc(sizeof(struct date));
    strcpy(object->day,"Good day");
    object->month=6;
    object->year=2013;
    FILE * file= fopen("output", "wb");
    if (file != NULL) {
        fwrite(object, sizeof(struct date), 1, file);
        fclose(file);
    }
    

Вы можете читать их таким же образом.... используя fread

    struct date *object2=malloc(sizeof(struct date));
    FILE * file= fopen("output", "rb");
    if (file != NULL) {
        fread(object2, sizeof(struct date), 1, file);
        fclose(file);
    }
    printf("%s/%d/%d\n",object2->day,object2->month,object2->year);