構造体全体をファイルに書き込むことは可能ですか?
例:
struct date {
char day[80];
int month;
int year;
};
構造体全体をファイルに書き込むことは可能ですか?
あなたの質問は、実際に構造体インスタンスをファイルに書き込んでいます。
fwrite
関数を使用してこれを実現できます。sizeof
2 番目の引数の各オブジェクトbinary mode
。リトル エンディアン システムで書き込み/読み取りを行い、ビッグ エンディアン システムで読み取り/書き込みを行う場合、およびその逆の場合は、エンディアンに注意してください。endian-agnostic-cc-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);