我正在使用Qt Creator來創建一個沒有Qt庫的普通C++項目。使用ifstream和QtCreator從當前目錄讀取文件
我試圖打開這樣的文件:
fopen("text.txt", "r");
或
ifstream fin;
fin.open("text.txt");
不過,這並不只是用文件名類似於Visual Studio的工作,我必須通過完整路徑爲它打開文件...
任何人都知道這是爲什麼?以及如何在不使用Qt庫的情況下引用當前目錄?
我正在使用Qt Creator來創建一個沒有Qt庫的普通C++項目。使用ifstream和QtCreator從當前目錄讀取文件
我試圖打開這樣的文件:
fopen("text.txt", "r");
或
ifstream fin;
fin.open("text.txt");
不過,這並不只是用文件名類似於Visual Studio的工作,我必須通過完整路徑爲它打開文件...
任何人都知道這是爲什麼?以及如何在不使用Qt庫的情況下引用當前目錄?
您可以使用QDir::current()
檢查工作目錄是否是您想要的。沒有Qt,你可以使用the solution TomA linked to。
run settings允許您將其配置爲從IDE運行應用程序。
的Visual Studio和Qt Creator之間的差異可能是
嘗試使用this獲取當前目錄,然後查看它是否實際上包含該文件。
它會;你的代碼很好。但正如其他答案所暗示的那樣,您需要確保您在自己認爲的目錄中運行它。
在左側面板上選擇「項目」,然後(從頂部的選項卡)「運行設置」,它會顯示它在標記爲「工作目錄」的字段中運行可執行文件的位置。我想默認情況下它是發佈和調試文件夾上的目錄。
感謝:D,你是正確的,我正在使用陰影構建選項,所以它建立在另一個文件夾上。 – Chrono 2012-01-16 16:27:13
你確定你的「當前目錄」實際上是你認爲的嗎? – 2012-01-16 14:39:39
要獲取沒有Qt的當前目錄,請參閱此問題:http://stackoverflow.com/questions/143174/cc-how-to-obtain-the-full-path-of-current-directory – 2012-01-16 14:55:30