2013-02-17 2 views
2

Я пытаюсь открыть файл, чтобы я мог его прочитать.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 и выход я получаю на терминале является «Error». Я использую Linux Mint 14 и gVim, поэтому, когда я вхожу в команду: pwd, я знаю, что я в каталоге/mnt/share. При проверке с терминала файл blah.txt находится в том же каталоге. Единственное, о чем я могу думать, это скрытые расширения файлов. Почему я не могу открыть файл?

ответ

5

Это потому, что вы дважды открываете «blah.txt».

Первый раз:

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

Второй раз:

input_file.open("blah.txt")

Удаление второй должен исправить вашу проблему.

0

Это

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

should open the file:

Кроме того, когда вторая версия конструктора используется, поток связан с физическим файлом, как если вызов функции-члена открыт с тем же были сделаны параметры.

Это

input_file.open("blah.txt"); 

should fail:

Если объект уже имеет файл, связанный (открытый), функция завершается ошибкой.

Прочитайте документацию.

Смежные вопросы