将std :: string转换为char *

时间:2012-11-11 10:31:59

标签: c++ string char

  

可能重复:
  Convert std::string to const char* or 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 *。另外投射不起作用

1 个答案:

答案 0 :(得分: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 pass std::string但似乎您的编译器不支持它。