我正在尝试打开一个文件,以便我可以阅读它。
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream input_file("blah.txt", ios::in);
ofstream output_file("output.txt", ios::out);
Bank::Bank(void){
input_file.open("blah.txt");
if(!input_file){
cerr << "Error" << endl;
exit(1);
}
else{
cout << "good 2 go" << endl;
}
}
这是我读取名为blah.txt的文件的代码,我在终端获得的输出是“错误”。我正在使用Linux Mint 14和gVim,所以当我输入:pwd命令时,我知道我在目录/ mnt / share中。从终端检查,文件blah.txt在同一目录中。我唯一能想到的是隐藏文件扩展名。为什么我不能打开文件?
答案 0 :(得分:5)
那是因为你打开了两次“blah.txt”。
第一次:
ifstream input_file("blah.txt", ios::in)
第二次:
input_file.open("blah.txt")
删除第二个应该可以解决您的问题。
答案 1 :(得分:1)
此
ifstream input_file("blah.txt", ios::in);
此外,当使用第二个构造函数版本时,该流与物理文件相关联,就好像使用相同参数打开对成员函数的调用一样。
此
input_file.open("blah.txt");
如果对象已经关联(打开)文件,则该函数将失败。
请阅读文档。