C++写入一个文件然后读取它

C++ write into a file and then read it

现在我正在研究一个小的 c++ fstream 示例。我想要做的是将一个数字写入文件,然后从文件中读取该数字。下面是我的代码。输出不是我所期望的,但是我不知道代码有什么问题。有人可以帮助我吗?

#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
int main(){
  ofstream outfile("input.dat", ios::binary | ios::out);
  int a = 1;
  outfile.write((char*)&a, sizeof(int));
  outfile.close();

  ifstream infile("input.dat", ios::binary | ios::in);
  infile.seekg(0, infile.end);
  long size = infile.tellg();
  infile.seekg(0, infile.beg);
  infile.close();

  int aa;//
  infile.read((char*)&aa, sizeof(int));

  cout << aa << endl;
  cout << size << endl;
  infile.close();
  return 0;
}

我的预期输出是:aa 1,size,4。但实际输出是:

32765
4

aa 的值是错误的。有人能帮我吗?谢谢!

infile.close();写了 2 次,取下第一个,在读取文件之前不需要关闭,如 Nikola 评论。