0
在我的項目中,我需要寫入二進制文件順序無符號整數,重要的是每個數字需要精確的4個字節。 但是,當我用十六進制編輯器打開二進制文件,我看到這個奇怪的事情發生: 數字寫入正確的數字9;在編號10之前,他會添加另一個額外的字節並寫入'13'(並且已經與我的文件混淆了)。 奇怪的事情繼續發生 - 從30號開始,將寫入不同的字符,每個號碼旁邊。 這是爲什麼?如何解決,至少是尺寸問題? 這裏是我的簡單示例代碼:無法正確寫入大型無符號整數到二進制文件 - C++
int main()
{
string filename;
cin >> filename;
fstream mystream;
mystream.open(filename, ios::out);
if (mystream)
for (unsigned int i = 0; i < 3200; i++)
mystream.write((char*)&i, sizeof(unsigned int));
mystream.close();
return 0;
}
,並連接的是我在文件中看到的圖像: file capture on hex editor
感謝
在全局namespae中定義'void main()'在標準C++中是非法的。你應該使用標準的'int main()'。 – MikeCAT
沒錯。我會糾正它; –