我正在用 C++ 编写一个二进制文件,在那里我遍历到一个特定的位置,需要用新的位置覆盖内容。我知道整数大小的内容,所以我跟踪位置并重写它。似乎,ofstream 写入函数插入或附加变量。有没有一种方法,我可以重写,而不是在文件中追加或插入
long word = sizeof(int) + sizeof(long) + sizeof(long);
std::ofstream file_write(filename, std::ios::out|std::ios::binary);
file_write.seekp(word);
long pos = file_write.tellp();
file_write.write((char *)&some_integer,sizeof(int));
file_write.close()
//some other location
file_write.seekp(pos);
file_write.write((char *)&some_other_integer,sizeof(int));
//这里 some_integer 应该被 some_other_integer 覆盖。有没有办法做到这一点?
那会像
值1,值2,值3
我也许可以用值 5 替换值 2。
那么它应该看起来像
值1,值5,值3