为什么这个程序没有从.bin文件中正确读取(或写入?)?(C++)

0 c++ file-io binary-data

我创建了这个程序:

#include <iostream>
#include <fstream>
using namespace std;

int main () {
  fstream file;
  file.open("test.bin", ios::in | ios::out | ios::binary);
  if(!file.is_open())
  {
      return -1;
  }
  int n = 5;
  int x;
  file.write(reinterpret_cast<char*>(&n), sizeof(n));
  file.read(reinterpret_cast<char*>(&x), sizeof(x));
  std::cout<<x;
  file.close();
  std::cin.ignore();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

应该将整数"n"写入.bin文件"test.bin",然后将数据从"test.bin"读入整数"x",然后在屏幕上显示"x".

当我运行程序时,它不显示5,而是显示-842150451.为什么会发生这种情况,我该如何解决?

Jhe*_*ico 7

file.write()在写入时是不是会移动当前文件指针,导致您在写入数据后从第一个位置读取数据?