当我做
fstream someFile("something.dat", ios::binary|ios::out);
someFile.seekp(someLocation, ios::beg);
someFile.write(someData, 100);
它似乎用这 100 个字节替换整个文件,而不是只替换适当的 100 个字节,就好像我指定了 ios::trunc。有没有一种可移植的方式让它不截断文件?
编辑:添加 ios::in 似乎可以解决问题,为什么需要这样做,这是标准行为吗?
编辑#2:我不想附加到现有文件。我需要替换 100 个字节,而其余部分不受影响。