私は問題に遭遇しました、そして、C++の私の現在の知識はそれを解決するのに十分ではありません。私はStroustrupの本で答えを探しましたが、今では私が間違っていることを完全に理解しています。
だから本質。
私はファイルに書き込みます:
int i = 1;
int j = 2;
ofstream ofs("file", ios::binary);
ofs.write(as_bytes(i), sizeof(int));
ofs.write(as_bytes(j), sizeof(int));
その後、2番目の値を更新する必要があります。
int j = 10;
ofstream ofs("file", ios::binary);
ofs.seekp(4, ios::beg);
ofs.write(as_bytes(j), sizeof(int));
そして、私がファイルを読み込もうとすると:
int i = 0;
int j = 0;
ifstream ifs("file", ios::binary);
ifs.read(as_bytes(i), sizeof(int));
ifs.read(as_bytes(j), sizeof(int));
cout << i << ' ' << j << endl;
私は最初の値を失ったことがわかりました。私は何が間違っているのですか?なぜ消えたのですか?