我有以下代码
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
。
答案 0 :(得分:0)
所以我解决了,问题是我只需要在while循环之后添加fin.close()
。我不确定为什么会这样。有人可以解释原因吗?
编辑:
好的,这不是问题。
在这段代码之后我有一个cin
,如果它还没有写完,它实际上会在它到达cin时停止写入。