我想写一个信息到二进制文件的最后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();
}
希望你能提供帮助,谢谢
答案 0 :(得分:2)
您必须以读写模式打开文件,以防止调用open
截断它:
test.open(filedestination, ios::binary | ios::in | ios::out);
答案 1 :(得分:0)
http://www.cplusplus.com/reference/cstdio/fseek/
尝试使用fseek()。以上链接是文档