構造体の文字列データをファイルへ書き込む方法は?
構造体の文字列データをファイルへ書き込む方法として、構造体のデータを一気に書き込まずに、データ毎に書き込むことを勉強としてやってみようとしました。
数字の場合はうまくいったのですが、文字列の場合が分かりません。
ご存知の方、よろしくお願いいたします。
<数字の場合>
typedef struct {
int m1, m2;
} Data;
fwrite(&data[i].m1, sizeof(int), 1, fp);
fwrite(&data[i].m2, sizeof(int), 1, fp);
<文字列の場合>
#include <stdio.h>
typedef struct {
char m1[10], m2[10];
} Data;
int main()
{
static Data data[3] = {
{ "a1", "b1"},
{ "c1", "d1"},
{ "e1", "f1"},
};
Data data2[10];
FILE *fp;
int i, n;
fp = fopen("file.dat", "wb");
if (fp == NULL) return 1;
for (i = 0; i < 3; i++) {
fwrite(&data[i].m1, sizeof(Data.m1[10]), 1, fp); ← sizeofでエラーが出る
fwrite(&data[i].m2, sizeof(Data.m2[10]), 1, fp);
}
fclose(fp);
以下省略