【问题标题】:ifstream won't open fileifstream 不会打开文件
【发布时间】:2013-02-17 10:25:56
【问题描述】:

我正在尝试打开一个文件以便从中读取。

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

【问题讨论】:

    标签: c++ ifstream


    【解决方案1】:

    那是因为你打开了两次“blah.txt”。

    第一次:

    ifstream input_file("blah.txt", ios::in)

    第二次:

    input_file.open("blah.txt")

    删除第二个应该可以解决您的问题。

    【讨论】:

      【解决方案2】:

      这个

      ifstream input_file("blah.txt", ios::in);
      

      should open the file:

      此外,当使用第二个构造函数版本时,流与物理文件相关联,就好像调用了具有相同参数的成员函数 open。

      这个

      input_file.open("blah.txt");
      

      should fail:

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

      请阅读文档。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多