2013-10-10 12 views
1

Мне нужна помощь при открытии файла и разборе его, но у меня проблема с ifstream, не открывающая файл. Имена файлов передаются правильно с расширением.Не удалось открыть файл, используя ifstream

Проблема заключается в том, что myFile.open(file); не кажется «фактически открытым» для файла, так как я получаю постоянный результат Could not open file.

EDITED CODE !!! Причина: Я заметил, что он не принимал полный путь к файлу, когда он проверял файл; теперь он правильно определяет, где файлы, однако, все равно не откроет их.

Вот что я работаю с:

#include "Parser.h" 

using namespace std; 

Parser::Parser() {}; 

void Parser::parseFile(std::string dir, const char* file) 
{ 
    dir = dir + "\\" + std::string(file); 
    cout << dir; 
    //cout << dir; 
    ifstream myFile; 

    myFile.open(file); 
    if (! myFile) 
    { 
     cout << "Could not open file " << myFile <<endl; 
     //exit(3); 
    } 
} 

Пожалуйста, обратите внимание, что я пытался добавить зЬй :: перед объявлением моей fstream Myfile и она по-прежнему не работает.

Любая помощь с благодарностью, спасибо.

+0

Вы проверили атрибуты chmod файла? – Thomas

+0

Файл существует? у вас есть соответствующие права на чтение файла? –

+0

ifstream myFile (файл, ifstream :: in); – Thomas

ответ

0
#include "Parser.h" 

using namespace std; 

Parser::Parser() {}; 

void Parser::parseFile(std::string dir, const char* file) 
{ 
    dir = dir + "\\" + std::string(file); 
    cout << dir; 
    //cout << dir; 
    ifstream myFile; 

    myFile.open(file); 
    if (! myFile) 
    { 
     cout << "Could not open file " << myFile <<endl; 
     //exit(3); 
    } 
} 

Линия: myFile.open(file); необходимо изменить, чтобы myFile.open(dir);

Действительно тупой ошибки, извините за беспокойство.

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