Я столкнулся с проблемой, и моих текущих знаний C ++ недостаточно для ее решения. Я искал ответ в книгах Страуструпа, но полное понимание того, что я делаю для меня не сейчас.
Так что суть.
Я пишу в файл:
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));
После этого мне нужно обновить второе значение:
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;
Оказывается, я теряю первое значение. Что я делаю неправильно? Почему он исчез?