C++ 以C+;格式随机位置将二进制输出到文件+;
我开始觉得自己有点笨拙,但我在将二进制数据输出到文件时遇到了问题。 我有一个文件,比如说,1000字节长。我想做的,在C++中,只是打开文件,在一个给定的位置替换一个字节(比如说,第i个字节),然后关闭它。 操作前的文件: AAAAA 操作后的文件: 阿阿巴 最简单的方法是什么?我尝试使用ofstream.open打开它,使用以下模式: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 所有这些都会影响操作后文件的实际
ios::binary|ios::out
ios::binary|ios::app
ios::binary|ios::ate
所有这些都会影响操作后文件的实际大小。我该怎么办?我开始感到绝望了
非常感谢大家,祝大家圣诞快乐
Matteo除了二进制模式外,您还需要在
out
和模式下打开它。这对应于fopen
模式“r+b”
,该模式打开一个文件进行读写,如果文件存在,则不会截断该文件(事实上,它必须存在,否则您将无法打开该文件)
参考资料:
除了二进制模式外,您还需要在out
和模式下打开它。这对应于fopen
模式“r+b”
,该模式打开一个文件进行读写,如果文件存在,则不会截断该文件(事实上,它必须存在,否则您将无法打开该文件)
参考资料:
这正是我需要的。非常感谢这正是我需要的。非常感谢D