2013-12-07 191 views
1

我想要使用OFstream在文件夾中創建文件。以下幾行代碼 - 總是給「輸出文件無法創建......」。無論我嘗試什麼。C++創建文件如果不存在

最後我想用一個變量(類型爲String)替換字符串的JOHN部分。

提示將非常感激。

 ofstream output_file(".\\Players\\JOHN\\Balance.txt", ios::app); // open the output file for appending 
if (!output_file.is_open()) { // check for successful opening 
    cout << "Output file could not be opened! Terminating!" << endl; 
    _sleep(1000); 
    return 1; 
} 
else{ 

output_file << getAcctbal(); 
output_file.close(); 
return 0; 
} 

編輯:

什麼已經是一個球員的文件夾 - 在玩家文件夾中。對於每個玩家我想要一個文件(所以約翰)在這種情況下是一個文件夾。這個文件夾不存在,而且我正在嘗試實現。 非常感謝:-)

+0

您確定目錄'Players'和'Players \ JOHN'存在相對於當前工作目錄嗎? (這可能與您的可執行文件不在同一個目錄中。) –

+0

不,該文件夾JOHN是我想要創建的文件夾。在該文件夾內,我想創建一個名爲DETAILS.txt的文件夾 – KingJohnno

+0

也許您沒有創建它的訪問權限? – Caesar

回答

3

文件只能在已經存在的目錄中創建。因此,在嘗試創建文件之前,您確實需要強制目錄結構存在。

沒有這樣做的C++標準庫功能。你可以實現你自己的功能來做到這一點。解析其目錄組件的路徑。從樹中的最高點開始,依次創建每個子目錄。

您似乎正在使用Windows。 Windows API具有直接滿足您需求的功能。具體爲SHCreateDirectory功能。我不知道你是否準備將自己與特定於平臺的API聯繫起來 - 這是你的選擇。

+0

http://stackoverflow.com/questions/9235679/create-a-directory-if-it-doesnt-exist – KingJohnno

相關問題