2013-10-09 4 views
0

Я пытаюсь открыть файл для чтения: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

возможно у вас нет прав доступа для чтения? – codeling

+0

создайте новый файл, чтобы проверить его. – DogDog

+0

@nyarlathotep У меня есть разрешения – OOkhan

ответ

3

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

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

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

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 

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

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

+0

Я сделал то, что сказал, путают с ответом. Проверьте это umar @ umar-Machine: ~/Desktop/DateFile $ ls -l /home/umar/Desktop/DateFile/dha_dataset.gfp ls: не удается получить доступ/домой /umar/Desktop/DateFile/dha_dataset.gfp: Нет такого файла или каталога Умар @ Умар-машина: ~/Desktop/DateFile $ Ls dha_dataset.gfp Умар @ Умар-машина: ~/Desktop/DateFile $ PWD /home/umar/Desktop/DateFile umar @ umar-Machine: ~/Desktop/DateFile $ – OOkhan

+0

, пожалуйста, добавьте это к вашему запросу n и отформатировать его правильно! так это нечитаемо. похоже, либо файл не существует, либо нет разрешений;) – codeling

+0

@OOkhan: Похоже, что путь неправильный. – Andrew

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