2012-11-11 138 views
1

可能重複:
Convert std::string to const char* or char*轉換的std :: string到char *

我有一個std::string,並希望傳遞一個文件名的fstream像

std::string fname = "/home/mahmood/filter" + boost::lexical_cast<std::string>(b) + ".txt"; 
std::fstream fout (fname, std::fstream::app | std::fstream::out); 

但我得到第二行的錯誤

error: no matching function for call to ‘std::basic_fstream<char, std::char_traits<char> >::basic_fstream(std::string&, 

似乎它不能將string轉換爲char *。此外鑄造不起作用

+2

谷歌會這麼難嗎? – 2012-11-11 10:38:29

回答

9

使用fname.c_str()爲:

std::fstream fout (fname.c_str(), std::fstream::app | std::fstream::out); 

.c_str()回報const char*。在C++ 03中,你必須通過const char*

在C++ 11中,你can passstd::string但似乎你的編譯器不支持它。

相關問題