2012-01-16 73 views
4

我正在使用Qt Creator來創建一個沒有Qt庫的普通C++項目。使用ifstream和QtCreator從當前目錄讀取文件

我試圖打開這樣的文件:

fopen("text.txt", "r"); 

ifstream fin; 
fin.open("text.txt"); 

不過,這並不只是用文件名類似於Visual Studio的工作,我必須通過完整路徑爲它打開文件...

任何人都知道這是爲什麼?以及如何在不使用Qt庫的情況下引用當前目錄?

+4

你確定你的「當前目錄」實際上是你認爲的嗎? – 2012-01-16 14:39:39

+1

要獲取沒有Qt的當前目錄,請參閱此問題:http://stackoverflow.com/questions/143174/cc-how-to-obtain-the-full-path-of-current-directory – 2012-01-16 14:55:30

回答

0

的Visual Studio和Qt Creator之間的差異可能是

  1. 每個啓動程序的二進制在不同的子目錄下您的項目結構。
  2. 一個人會將text.txt文件作爲項目的一部分複製到與二進制文件相同的輸出目錄中,而另一個則不會。

嘗試使用this獲取當前目錄,然後查看它是否實際上包含該文件。

2

它會;你的代碼很好。但正如其他答案所暗示的那樣,您需要確保您在自己認爲的目錄中運行它。

在左側面板上選擇「項目」,然後(從頂部的選項卡)「運行設置」,它會顯示它在標記爲「工作目錄」的字段中運行可執行文件的位置。我想默認情況下它是發佈和調試文件夾上的目錄。

+0

感謝:D,你是正確的,我正在使用陰影構建選項,所以它建立在另一個文件夾上。 – Chrono 2012-01-16 16:27:13