我有此線,其中p_strFilename
從被保存一堆文件中的一個函數參數C++改變的ofstream的目錄用一個字符串緩衝區文件名
foo(const std::string &p_strFilename)
定義的代碼
std::ofstream output(p_strFilename.c_str());
當前工作目錄。不過,我想在該目錄內輸入一個步驟並將文件保存在裏面。我試圖
std::ofstream output("folder1\\"+p_strFilename.c_str())
這是給我
error: invalid operands of types ‘const char [9]’ and ‘const char*’ to binary ‘operator+’
我的猜測是讀取目錄9個字符,而不是作爲一個字符串。
第一個問題:是不是要輸入正確的方式的目錄? (雙反斜線和從CWD開始沒有形成主目錄)
第二個問題:我怎樣才能解決我的編譯錯誤?
@RawN它應該如果: 1. p_strFilename是類型的std :: string和 2.輸出()取 「常量字符*」 作爲參數的。 爲什麼你認爲它不會編譯? – Brutus
@RawN如果p_strFilename的類型是「const char *」,那麼 p_strFilename.c_str() 是如何工作的?我認爲c_str()是std :: string類型的一種方法... – Brutus
儘管這樣做刪除了我的編譯錯誤,但現在發生的情況是這些文件仍然保存在名爲「folder1 \ file1」的cwd中。 txt「,」folder1 \ file2.txt「等。我該如何解決這個問題 –