Fstream не открывает файл

Я пытаюсь открыть файл для чтения:

cout << file_path << endl;
fstream myfile(file_path.c_str(), std::ios_base::in);
if (myfile.is_open())
    cout << "Yahhy!! file Opend successfully" << endl;
else
    cout << "Wohoo!! Wrong path" << endl;

Выход:

/home/umar/Desktop/DateFile/dha_dataset.gfp

Wohoo!! Wrong path

Путь правильный - файл существует, но файл не открывается. Проблема в моем коде или в другом месте?

Я работаю в Ubuntu.

1 ответ

Решение

Синтаксис выглядит правильно, что оставляет два варианта:

Либо файл не существует, либо у вас нет разрешения на чтение.

Чтобы проверить оба, выполните следующую команду из терминала:

ls -l /home/umar/Desktop/DateFile/dha_dataset.gfp

Посмотрите на результаты, они должны выглядеть примерно так:

ls: cannot access /home/umar/Desktop/DateFile/dha_dataset.gfp: No such file or directory

или же:

-rw-rw-rw xxx yyy 1025 Oct 9 2013 dha_dataset.gfp

Первый результат означает, что путь неверен.

Второй результат означает, что путь правильный, поэтому посмотрите на разрешения. Если у вас нет разрешения на чтение... (один из rs) тогда вы не сможете открыть файл.

Другие вопросы по тегам