我遇到了一个问题,我目前的 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));
之后,我需要更新第二个值:
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;
事实证明,我失去了第一个价值。我究竟做错了什么?为什么消失了?