为什么我的以下代码无法从文件中读取单个整数? 它显示“fail() reading”后跟“0”。
在 linux ubuntu gcc 编译器上。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream fout2("int_data",ios::binary|ios::out);
int a = 2;
fout2.write((char*)&a,sizeof(a));
int b=0;
ifstream fin2("int_data",ios::binary|ios::in);
fin2.read((char*)&b,sizeof(b));
if(fin2.fail())
cout << "fail() reading" << endl;
cout << b << endl;
}
最佳答案
这可能会因为几个原因而失败:
- 您的操作系统可能会阻止您打开当前打开用于写入的文件
- 您可能还没有将数据写入文件
您可以使用 close
解决这两个问题在构造 fin2
之前:
ofstream fout2("int_data", ios::binary);
const int a = 2;
fout2.write(reinterpret_cast<const char*>(&a), sizeof(a));
fout2.close();
int b = 0;
ifstream fin2("int_data", ios::binary);
if(!fin2.read(reinterpret_cast<char*>(&b), sizeof(b))) {
cout << "fail() reading" << endl;
}
cout << b << endl;;
关于c++ fstream read()函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37272768/