C++没有可行的从字符串到const char的转换*

khf*_*kek 1 c++ string char

我正在使用C++(使用CERN的ROOT框架),我对字符串有一点问题.我正在尝试使用代码中较早的用户定义的字符串来标记直方图轴.以下是代码的相关部分:

string xlabel;

...
cout << "Enter x-axis label:" << endl;
getline(cin >> ws, xlabel);

...

hist->GetXaxis()->SetTitle(xlabel);
Run Code Online (Sandbox Code Playgroud)

最后一行只是ROOT使用的语法(通常这里的xlabel将在引号中,你可以键入你想要的标签,但我试图输入前面在代码中定义的字符串.)

无论如何,当我编译它时,我收到以下错误:

error: no viable conversion from 'string'
      (aka 'basic_string<char>') to 'const char *'
        hist->GetXaxis()->SetTitle(xlabel);
                                   ^~~~~~
Run Code Online (Sandbox Code Playgroud)

我曾尝试将xlabel重新定义为const char*,但它也不喜欢它.有没有人对如何定义这个字符串有任何建议?

提前致谢!

Ker*_* SB 11

做这个:

hist->GetXaxis()->SetTitle(xlabel.c_str());
//                               ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)