下面是定義的結構。從文件讀取結構內的結構
typedef struct{
int a;
char b;
}X;
typedef struct{
X m;
int c;
char d;
}B;
B n,q;
n.m.a = 12;
n.m.b = 'a';
n.c = 13;
n.d = 'b';
我在文件中做了以下結構的fwrite。文件打開如下。
fp = fopen("D://tests//t11test.txt","wb");
fwrite(&n, sizeof(B), 1, fp);
fwrite成功,我檢查了與fp對應的文件內容。 但是,當我關閉並重新打開文件後在同一文件上執行fread時,我無法讀取子結構m的內容。該fread是
fp = fopen("D://tests//t11test.txt","rb");
fread(&q, sizeof(B), 1,fp);
我在哪裏出錯了?
你是什麼意思「不能讀」? – 2012-03-14 09:49:00
我猜你已經用一種破壞原始文件內容的模式重新打開文件。你可以發佈一個複製程序嗎? – sarnold 2012-03-14 09:49:55
@ Karoly值** int c **和** char d **正確讀取。子結構X **的**成員沒有正確閱讀。 @sarnold我以「wb」模式寫入文件,並在「rb」中重新打開以讀取結構。其實我有兩個程序。一個將結構寫入文件,另一個讀取結果。 – 2012-03-14 09:52:36