-1
我有以下代碼輸出二進制數據丟失一些字節
fin.close();
open = inName + ".xxx";
fin.open(open.c_str(),ios::binary);
fin>>noskipws;
while (fin>>_4byte[0])
{
fout<<_4byte[0];
}
我也有以二進制模式FOUT開得。 但是,這段代碼運行得很完美,但是在它之前添加一個循環後突然停止輸出所有數據,它在33〜55字節左右的某處丟失。 我試圖刪除所有其他fin.open
和fin.close
保持這一個,但我一直得到同樣的問題,這是輸出文件丟失了一些數據。
_4byte
是unsigned char array
。
您是否每次都故意讀取相同的'unsigned char',或者您是否想讀入'_4byte [1]'等等? – AndyG
考慮提供[MCVE](http://stackoverflow.com/help/mcve)。 – BeeOnRope
對於二進制數據,我真的推薦使用read()而不是'>>'運算符。這裏有另一篇文章討論各種選擇。 http://stackoverflow.com/questions/6774825/reading-from-ifstream-wont-read-whitespace –