2015-02-05 67 views
-1

我有以下文件夾結構: /代碼 /文件 (即,「文件」文件夾中存在「代碼」文件夾中) 我嘗試使用fstream的像這樣創建一個文件(在寫):創建文件有

ofstream out("\files\plsmap.txt"); 

編譯器不給任何錯誤,但是,被在「文件」文件夾中創建任何文件。這可能是什麼原因,還有,還有其他的方式嗎?

回答

3

你寫了「\ files \ plsmap.txt」。前導斜槓指定整個文件系統的根目錄。所以「\ files」與「\ code \ files」非常不同。您可以嘗試刪除前導斜槓或更改字符串,以使其包含您嘗試寫入的目錄的完整絕對路徑。您可以通過在終端中運行該目錄中的pwd來計算目錄的絕對路徑。

除了錯位的斜線,另外一點需要注意的是,反斜槓是內部C++字符串中的特殊,他們需要使用時,你在你寫C他們第二次反斜槓轉義++源代碼:

const char * path = "code\\plsmap.txt"; 

您的環境可能允許您使用正斜槓代替,這會更容易,因爲它們不需要轉義。

+0

現在有一個確切的重複接收器這些問題 - https://stackoverflow.com/questions/28328052/why-do-i-have-to-use-double-backslashes-for-file-paths-in-碼。它們可以標記爲該問題的重複項。 – sashoalm 2015-02-05 15:59:08