我對C非常陌生,並且在使用fwrite時遇到了麻煩。如何使用fwrite將結構寫入文件?
我期待使用擁有兩個值的結構:
struct keyEncode{
unsigned short key[2];
unsigned short encoded[2];
};
然後我宣佈我的結構,並在我的主要一個指向結構:
struct keyEncode keynEncode;
struct keyEncode *storedVal = &keynEncode;
我就將值賦給在結構和想用fwrite來寫結構到一個文件:
keynEncode.key[0] = k1[0];
keynEncode.key[1] = k1[1];
keynEncode.encoded[0] = p[0];
keynEncode.encoded[1] = p[1];
// i tried to use storedVal.key[0] = k1[0]; but i was getting compile errors
fwrite(storedVal, sizeof(storedVal), 0xffff, fp);
現在我的問題爲t帽子fwrite什麼都不寫入文件。
我哪裏錯了?
刪除C++標籤,因爲這是C代碼是學習:)。 – 2010-11-11 15:08:41
什麼是0xffff?你正在寫65K的記錄?不,這裏應該是1. – Vovanium 2010-11-11 15:11:13
你在做什麼是可以想象的,但是一般來說,編譯器允許在這裏的struct成員之間插入填充。因此,只需將'struct'的二進制表示寫出到磁盤就不會在編譯器和/或編譯器版本和/或編譯器設置之間產生一致的結果。 – 2010-11-11 15:11:26