-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 –