2016-11-28 91 views
0

我正在嘗試編寫HTML輸出文件。該文件是寫的,一切都很好,但我想知道是否有一種方法來獲取字符串的文件名,檢查是否存在,如果是,然後改變該字符串。所以我絕不會覆蓋已經存在的文件。C++如果存在更改輸出文件名稱

string outputFile; 
cin>>outputFile; 
ofstream out; 
string path ="..\\data\\"+ outputFile+ ".html"; 
out.open(path.c_str()); 

因此,在這種情況下,如果OUTPUTFILE是讓我們說「耶穌」,然後我想要做的事,所以如果我要運行這個3次,我不得不像Jesus.html,Jesus2.html,Jesus3.html 。不需要像這樣編號,只要對該字符串進行任何改變就行。這甚至有可能嗎?我試過這個使用 tmpnam() 但我真的不明白它應該如何工作,如果它甚至可以使用。

感謝所有幫助

回答

1

如果文件在這裏提到的方法之一存在,你可以檢查:

Fastest way to check if a file exist using standard C++/C++11/C?

完整的代碼看起來像這樣

inline bool file_exists (const std::string& name) { 
    struct stat buffer; 
    return (stat (name.c_str(), &buffer) == 0); 
} 

while (file_exists(file_name)) 
    file_name += "_1"; 
相關問題