2013-10-09 54 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 

的第一個結果意味着路徑不正確。

第二個結果表示路徑是正確的,所以看看權限。如果您沒有讀取權限...(r之一),那麼您將無法打開文件。

+0

我做了你說的與困惑的答案。查看 umar @ umar-Machine:〜/ Desktop/DateFile $ ls -l /home/umar/Desktop/DateFile/dha_dataset.gfp ls:無法訪問/ home /umar/Desktop/DateFile/dha_dataset.gfp:沒有這樣的文件或目錄 umar @ umar-Machine:〜/ Desktop/DateFile $ ls dha_dataset.gfp umar @ umar-Machine:〜/ Desktop/DateFile $ pwd /home/umar/Desktop/DateFile umar @ umar-Machine:〜/ Desktop/DateFile $ – OOkhan

+0

請將此添加到您的問題並正確格式化!像這樣它是不可讀的。看起來像是該文件不存在,或者沒有權限;) – codeling

+0

@ 100khan:看起來像路徑是錯誤的,然後。 – Andrew