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

时间:2016-02-25 16:10:41

标签: c++ file-io fstream

现在我正在开发一个小型的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的值是错误的。有人能帮我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

infile.close();写了2次,取下第一个,不需要关闭它甚至读取文件,正如尼古拉评论。