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 评论。
现在我正在研究一个小的 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 评论。