2015-11-06 182 views
0

我知道有很多關於此主題的問題,但是我無法使其工作。該程序在我的筆記本電腦上運行良好,但是當我嘗試在學校Linux實驗室中編譯並運行該程序時,該程序無法打開該文件。我試圖定義絕對文件位置,但沒有任何工作。文件名是正確的,但是當我嘗試運行該程序時,它顯示「失敗」。我使用gedit並用bash編譯程序。我無法使用fstream讀取.dat文件

ifstream fin("rainfall.dat");  // If the file cannot open display failed 
    if(fin.fail()){ 
    cout << "failed" << endl; 
    return 1; 
    } 
+0

你有權限讀取文件? – clcto

+1

如果這是唯一的問題(到目前爲止,但它是你的問題所在),那麼就沒有必要包含所有其他的東西。除非它工作*沒有*,並且不工作*與*。你測試過了嗎?請參見[如何創建最小,完整,可驗證示例](http://stackoverflow.com/help/mcve)。 – usr2564301

+0

是的,我願意。讀取和寫入。 –

回答

2

嘗試

#include <errno.h> 

    if(fin.fail()) 
     perror("open failed "); 

這會給你一個人類可讀的消息,在過去的錯誤

+0

好,所以它說沒有這樣的文件或目錄(我認爲它會說),但爲什麼?這個名字是正確的,如果我嘗試將整個文件路徑放在正確的目錄下,我會遇到同樣的問題。 –

+0

我不知道更改了什麼,但在刪除文件並重新下載之後,該程序起作用。 –

+1

恢復爲白癡模式,只是爲了確保您的電腦正常工作。 1.創建一個名爲'a'的文件。 2.試試這個程序(自然使用正確的文件名!)。 3A。如果它起作用,那麼原來的名字中可能會有一些奇怪的字符。 3B。如果沒有,你的系統就會崩潰。 (當我打字時)。 ...看來這是3a! – usr2564301