2011-09-01 118 views
4

我寫這個代碼訪問一個文件在Eclipse CDT而用eclipse調試CDT

ifstream inFile; 
ofstream outFile; 
string next; 

inFile.open("input.txt"); 
if (inFile.fail()) 
{ 
    cout << "\nCould not open input.txt"; 
    exit(1); 

} 

的問題是,當我嘗試調試我的應用程序或從Eclipse內運行我的應用程序如何訪問一個文本文件它無法找到input.txt文件。當我從控制檯運行我的應用程序時,它工作正常,並打開文件。我需要調試應用程序,但不能,因爲由於某種原因,Eclipse IDE無法找到該文件。

我應該在哪裏放置文件?

回答

7

這可能是相對路徑的問題。 input.txt在您的項目的根目錄中? Eclipse使項目的頂級目錄成爲工作目錄。如果您將代碼中的"input.txt"替換爲完全限定的文件名,那也應該起作用。

+0

謝謝,就是這樣。我的印象是,如果你用「filenameOnly.txt」來引用它,那麼它'與'可執行文件'在'相同的目錄中,但是把它的一個副本放到項目根目錄中就可以把它整理出來! – georgelappies

+0

@georgelappies:是的,我不知道Eclipse爲什麼這麼做。你一定會期望工作目錄在src或bin文件夾中。 – Daniel

+2

您可以使用運行/調試配置的「工作目錄」來設置此位置。 http://help.eclipse.org/indigo/topic/org.eclipse.cdt.doc.user/reference/cdt_u_run_dbg_arg.htm – goldsz

1

編寫一個創建文件的測試程序,比如「Here_I_Am.txt」。

找到該目錄的目錄將是可執行文件用作默認目錄的目錄。

相對於「Here_I_Am.txt」文件,根據需要添加文件路徑。或將您的文本文件放在與「Here_I_Am.txt」相同的目錄中

1

我發現使用Eclipse時,讓項目的根目錄中的文件應該可以加載。但是,如果要從命令行運行它,則文件需要與可執行文件位於同一個文件夾中(類似Debug /在項目文件夾內)。

它應該可以將文件拖放到您的Eclipse項目中。只要確保您選擇複製文件的選項,而不是鏈接到它。

4

除了移動源輸入文件,您可能會考慮更改啓動應用程序的工作目錄。

通過從「$ {workspace_loc:[Project Name]}」設置「運行配置」> [RUN]>「參數」選項卡>「工作目錄」「其他內容如」$ {workspace_loc:[Project Name] }/Release「,這是Eclipse常用的二進制目標目錄。

1

取消選擇使用默認按鈕後,選擇包含二進制文件的文件夾。二進制文件可以在Run configurations > Arguments > working directory下找到。