输出二进制数据丢失了一些字节
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.open
和 fin.close
以保留这个,但我一直遇到同样的问题,即输出文件丢失了一些数据。
_4byte
是一个 unsigned char array
.
所以我解决了,问题是我只需要在while循环之后添加fin.close()
。我不确定为什么会这样。谁能解释一下原因?
编辑:
好的,那不是问题。
在这段代码之后我有一个cin
,如果它还没有完成写入,它实际上会在到达cin时停止写入。
我有以下代码
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
.
所以我解决了,问题是我只需要在while循环之后添加fin.close()
。我不确定为什么会这样。谁能解释一下原因?
编辑:
好的,那不是问题。
在这段代码之后我有一个cin
,如果它还没有完成写入,它实际上会在到达cin时停止写入。