3
我有ifstream打開函數的問題。我在netbeans的linux下創建應用程序。 我的代碼是:ifstream打開文件C++
ifstream file;
file.open(path);
file.is_open()
.
.
.
問題出在路徑上。當我使用〜/ Desktop/file.txt並運行應用程序時,文件未打開。但是,當我調試應用程序,一切正常。 這個問題的任何提示? 謝謝
我有ifstream打開函數的問題。我在netbeans的linux下創建應用程序。 我的代碼是:ifstream打開文件C++
ifstream file;
file.open(path);
file.is_open()
.
.
.
問題出在路徑上。當我使用〜/ Desktop/file.txt並運行應用程序時,文件未打開。但是,當我調試應用程序,一切正常。 這個問題的任何提示? 謝謝
路徑名〜/ Desktop/file.txt將不匹配文件,除非它已經擴展了波形符號,這通常由shell在將它傳遞給程序之前完成。 如果直接調用它,那麼你需要使用一個全路徑名
/home/user/Desktop/file.txt
或相對路徑
./Desktop/file.txt
我懷疑調試器擴展文件名你是之前有幫助傳遞給程序。
./Desktop/file.txt不起作用。但它也必須與〜一起工作。 – JuP
它很大程度上取決於你如何調用該命令,以及從哪個目錄。 – Julian
用於'〜'的正確目錄位於'getenv(「HOME」)''獲得的環境變量'HOME'中。所以如果你得到的文件名以'〜/'開始,你只需要用'HOME'的內容替換波浪號以得到絕對路徑。但是請注意,您通常不應該使用從命令行獲得的文件名來執行此操作,因爲它們預計會由shell進行擴展。 – celtschk