C++ 没有从字符串到 const char * 的可行转换
C++ No viable conversion from string to const char *
我正在使用 C++(使用 CERN 的 ROOT 框架)并且我在使用字符串时遇到了一点问题。我正在尝试使用用户先前在代码中定义的字符串来标记直方图轴。以下是代码的相关部分:
string xlabel;
...
cout << "Enter x-axis label:" << endl;
getline(cin >> ws, xlabel);
...
hist->GetXaxis()->SetTitle(xlabel);
最后一行只是ROOT使用的语法(通常这里的xlabel会在引号中,你可以输入你想要的标签,但我试图输入代码中前面定义的字符串.)
无论如何,当我编译这个时,我得到以下错误:
error: no viable conversion from 'string'
(aka 'basic_string<char>') to 'const char *'
hist->GetXaxis()->SetTitle(xlabel);
^~~~~~
我曾尝试将 xlabel 重新定义为 const char * 但它也不喜欢那样。有人对我如何定义这个字符串有什么建议吗?
提前致谢!
这样做:
hist->GetXaxis()->SetTitle(xlabel.c_str());
// ^^^^^^^^
我正在使用 C++(使用 CERN 的 ROOT 框架)并且我在使用字符串时遇到了一点问题。我正在尝试使用用户先前在代码中定义的字符串来标记直方图轴。以下是代码的相关部分:
string xlabel;
...
cout << "Enter x-axis label:" << endl;
getline(cin >> ws, xlabel);
...
hist->GetXaxis()->SetTitle(xlabel);
最后一行只是ROOT使用的语法(通常这里的xlabel会在引号中,你可以输入你想要的标签,但我试图输入代码中前面定义的字符串.)
无论如何,当我编译这个时,我得到以下错误:
error: no viable conversion from 'string'
(aka 'basic_string<char>') to 'const char *'
hist->GetXaxis()->SetTitle(xlabel);
^~~~~~
我曾尝试将 xlabel 重新定义为 const char * 但它也不喜欢那样。有人对我如何定义这个字符串有什么建议吗?
提前致谢!
这样做:
hist->GetXaxis()->SetTitle(xlabel.c_str());
// ^^^^^^^^