1

我想将信息写入二进制文件的最后 32 个字符。但是当我调用我的 writeInfo 函数时,它会删除整个内容。我可以在写之前读取数据,但是在我用这个函数写之后,它会删除整个内容,而不是写。

void Info::writeInfo(char *filedestination)
{
ofstream test;
test.open(filedestination, ios::binary); 
test.seekp(-32, ios::end); // not sure about seekp
test.write(info, 31);
test.close();
}

希望能帮到你,谢谢

4

2 回答 2

2

您必须以读写模式打开文件以防止调用open截断它:

test.open(filedestination, ios::binary | ios::in | ios::out); 
于 2013-03-17T18:50:48.120 回答
0

http://www.cplusplus.com/reference/cstdio/fseek/

尝试使用 fseek()。上面的链接是文档

于 2013-03-17T18:44:49.337 回答