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

C++ No viable conversion from string to const char *

本问题已经有最佳答案,请猛点这里访问。

我使用C++(使用CERN的根框架),我对字符串有一个小问题。我尝试使用用户在代码前面定义的字符串来标记柱状图轴。以下是代码的相关部分:

1
2
3
4
5
6
7
8
9
string xlabel;

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

...

hist->GetXaxis()->SetTitle(xlabel);

其中最后一行只是根用户使用的语法(通常这里的xlabel是引号,您可以键入希望标签是什么,但我尝试输入代码中前面定义的字符串。)

总之,当我编译这个时,我得到了以下错误:

1
2
3
4
error: no viable conversion from 'string'
      (aka 'basic_string<char>') to 'const char *'
        hist->GetXaxis()->SetTitle(xlabel);
                                   ^~~~~~

我试图将XLabel重新定义为const char*,但它也不喜欢这样。有人对我如何定义这个字符串有什么建议吗?

事先谢谢!


这样做:

1
2
hist->GetXaxis()->SetTitle(xlabel.c_str());
//                               ^^^^^^^^