C++ 以C+;格式随机位置将二进制输出到文件+;

C++ 以C+;格式随机位置将二进制输出到文件+;,c++,binary,append,ofstream,C++,Binary,Append,Ofstream,我开始觉得自己有点笨拙,但我在将二进制数据输出到文件时遇到了问题。 我有一个文件,比如说,1000字节长。我想做的,在C++中,只是打开文件,在一个给定的位置替换一个字节(比如说,第i个字节),然后关闭它。 操作前的文件: AAAAA 操作后的文件: 阿阿巴 最简单的方法是什么?我尝试使用ofstream.open打开它,使用以下模式: ios::binary|ios::out ios::binary|ios::app ios::binary|ios::ate 所有这些都会影响操作后文件的实际

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

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

ios::binary|ios::out
ios::binary|ios::app
ios::binary|ios::ate
所有这些都会影响操作后文件的实际大小。我该怎么办?我开始感到绝望了

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


Matteo

除了二进制模式外,您还需要在
out
模式下打开它。这对应于
fopen
模式
“r+b”
,该模式打开一个文件进行读写,如果文件存在,则不会截断该文件(事实上,它必须存在,否则您将无法打开该文件)

参考资料:


除了二进制模式外,您还需要在
out
模式下打开它。这对应于
fopen
模式
“r+b”
,该模式打开一个文件进行读写,如果文件存在,则不会截断该文件(事实上,它必须存在,否则您将无法打开该文件)

参考资料:


这正是我需要的。非常感谢这正是我需要的。非常感谢D