二进制输出到C++中随机位置的文件

Binary output to file in random positions in C++

本文关键字:位置 文件 随机 输出 C++ 二进制      更新时间:2023-10-16

我开始觉得笨拙愚蠢,但是我在将二进制数据输出到文件时遇到了问题。我有一个文件,比方说,1000字节长。C++,我想做的只是打开文件,替换给定位置的一个字节(比如说,第 i 个字节),然后关闭它。

操作前文件: AAAAAA操作后的文件: AAABAA

最简单的方法是什么?我尝试使用ofstream.open打开它,具有以下模式:

ios::binary|ios::out
ios::binary|ios::app
ios::binary|ios::ate

所有这些都影响了操作后文件的实际大小。我该怎么办?我开始感到绝望。

非常感谢大家,祝大家圣诞快乐!

马迪奥

除了二进制模式,您还需要在outin模式下打开它。这对应于fopen模式"r+b",该模式打开文件进行读取和写入,并且不会截断文件(实际上,它必须存在,否则您将无法打开文件)。

引用:

  • std::basic_filebuf::open
  • std::fopen