我的问题是关于二进制文件 I/O。假设运行以下代码:
#include <iostream>
#inclide <fstream>
int main(){
fstream out;
out.open("binfile.bin",ios::binary|ios::out);
if(!out.good()){
cout<<"ain't good"<<endl;
return EXIT_FAILURE;
}
out.seekp(3);
out<<char(74);
out.seekp(7);
out<<char(73);
out.close();
}
binfile.bin 包含00 00 00 4A 00 00 00 49
,正如预期的那样。如果我不指定要输出的内容,我可以以某种方式更改放置在文件中的默认值吗?我想用类似00
的东西替换30
,这样 binfile.bin 将包含 30 30 30 4A 30 30 30 49
,这可行吗?当然,我可以在最后遍历文件并将所有00
s替换为30
s,但我想避免这种情况。