我有這樣的結構:保存部分結構
struct DATOS{
short dato1;
float dato2;
};
DATOS dat1;
dat1.dato1 = 123;
FILE *archivo;
archivo = fopen("archivo.bin","wb");
fwrite(&dat1,sizeof(DATOS),1,archivo);
fclose(archivo);
正常,但如果我想其他的值之後進入,我該怎麼辦呢?
dat1.dato2 = 4.2536;
archivo = fopen("archivo.bin","ab");
fwrite(&dat1.dato2,sizeof(float),1,archivo); ????
fclose(archivo);
謝謝。
'DATOS dat1;'是錯誤的,因爲它被正確寫入。在結構中使用'typedef'或在變量定義中使用'struct' – 2015-02-23 16:10:48
用@SouravGhosh調用該點,但另一種方法是:不要使用C++編譯器來編譯C;它會允許這些事情'工作',即使它們不是有效的。C. – 2015-02-23 16:15:22
您是否想要將額外的結構追加到文件中,還是隻想覆蓋文件中已有的一個結構的一部分?如果你想追加,你需要寫一個全新的結構;否則,你不知道在文件中有'short'和'float'(加上可選的填充),後面跟着一個'float',所以沒有一種好的方法來讀取數據又回來了。對於覆蓋和追加,處理整個結構要容易得多。 – 2015-02-23 16:18:13