2

可能重复:
将 std::string 转换为 const char* 或 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&, 

似乎它无法转换stringchar *. 铸造也不起作用

4

1 回答 1

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 中,您可以通过 std::string,但您的编译器似乎不支持它。

于 2012-11-11T10:33:12.977 回答