现在我正在开发一个小型的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的值是错误的。有人能帮我吗?谢谢!
答案 0 :(得分:1)
infile.close();写了2次,取下第一个,不需要关闭它甚至读取文件,正如尼古拉评论。