写入文件的最后32个字符

时间:2013-03-17 18:41:49

标签: c++ file ofstream file-processing

我想写一个信息到二进制文件的最后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();
}

希望你能提供帮助,谢谢

2 个答案:

答案 0 :(得分:2)

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

test.open(filedestination, ios::binary | ios::in | ios::out); 

答案 1 :(得分:0)

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

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