曾经看过一个帖子http://pnig0s1992.blog.51cto.com/393390/563152,文中说c++读写二进制文件关键在于接口函数,用什么模式打开没有关系,我觉得那样讲是不对的。不过文章看一下也可以。
c++读写二进制文件,在windows与linux下可能会有不同的效果。本人写的一个小例子在linux下写入二进制数据正常,而在windows下面写入数据的过程中,竟然自动添加了0x25等等一些无意义的字节,找了好久才发现这个bug。
下面是正确的写法
struct HashKey_S
{
HashKey_S(DWORD uiFirst = 0, DWORD uiSecond = 0):uifirsthash(uiFirst), uisecondhash(uiSecond){
}
HashKey_S(const HashKey_S &stHash):uifirsthash(stHash.uifirsthash), uisecondhash(stHash.uisecondhash){
}
DWORD uifirsthash;
DWORD uisecondhash;
};
void TestWriteBinary()
{
const char *pcwritefile = "fileBinary.txt";
ofstream ofs;
ofs.open(pcwritef