小编use*_*333的帖子

覆盖文件中的字节而不清除它

如何覆盖文件中的一个字节而不清除整个文件?请注意,我不想插入额外的字节,而是想覆盖某个偏移处的字节。

我尝试使用以下代码在某个偏移处写入一个字节。然而,这会清除指定偏移量之后的所有内容,这不是我想要的。

#include <fstream>

int main()
{
    std::ofstream ofs {"foo", std::ios::binary};
    ofs.seekp(0x2);
    ofs.put(0x7);
}
Run Code Online (Sandbox Code Playgroud)

一般来说,SO 上的人们似乎建议读取整个文件,然后在内存中更改它,然后再次将其写出。然而,仅仅改变一个字节似乎需要太多工作。

是否不可能就地覆盖单个字节?

c++ byte file

3
推荐指数
1
解决办法
578
查看次数

标签 统计

byte ×1

c++ ×1

file ×1