我使用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 *,但它也不是那样的。有没有人对如何定义这个字符串有任何建议?
提前致谢!
答案 0 :(得分:10)
这样做:
hist->GetXaxis()->SetTitle(xlabel.c_str());
// ^^^^^^^^