输出二进制数据丢失了一些字节

outputting binary data is missing some bytes

我有以下代码

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.openfin.close 以保留这个,但我一直遇到同样的问题,即输出文件丢失了一些数据。

_4byte 是一个 unsigned char array.

所以我解决了,问题是我只需要在while循环之后添加fin.close()。我不确定为什么会这样。谁能解释一下原因?

编辑: 好的,那不是问题。 在这段代码之后我有一个cin,如果它还没有完成写入,它实际上会在到达cin时停止写入。