【问题标题】:Overwriting bytes of a binary file from an offset in C++从 C++ 中的偏移量覆盖二进制文件的字节
【发布时间】:2019-04-01 14:13:59
【问题描述】:

在这个操作中,我首先复制我的源二进制文件。

然后我希望从特定偏移量开始覆盖复制文件中的字节。

我用seekp(offset,std::ios::beg) 移动到所需的位置,然后开始覆盖过程

file.write(reinterpret_cast<const char*>(&my_vector[0]), my_vector.size()*sizeof(unsigned char));

然后关闭文件。

当我在十六进制编辑器中打开已处理的文件时,我在开始写入的偏移量之前看到的所有字节都是,并且我使用此操作写入的字节已成功写入。

流的模式是std::fstream(path, std::ios::out | std::ios::binary);

我在这个操作中有什么遗漏吗?

【问题讨论】:

标签: c++ file-io


【解决方案1】:

如果您想保留旧内容,请以输入/输出模式打开它。即ios::in | ios::out

此外,如果您使用的是std::fstream,这是默认行为,因此您可以直接使用:std::fstream(path, std::ios::binary)

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    相关资源
    最近更新 更多