Ответ 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);