ifstream不会打开文件

时间:2013-02-17 10:25:57

标签: c++ ifstream

我正在尝试打开一个文件,以便我可以阅读它。

#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在同一目录中。我唯一能想到的是隐藏文件扩展名。为什么我不能打开文件?

2 个答案:

答案 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);

should open the file

  

此外,当使用第二个构造函数版本时,该流与物理文件相关联,就好像使用相同参数打开对成员函数的调用一样。

input_file.open("blah.txt");

should fail

  

如果对象已经关联(打开)文件,则该函数将失败。

请阅读文档。