我试过这个解决方案,但它不起作用。
string mystring = "77";
int mynum = atoi(mystring);
错误:无法将'std :: string {aka std :: basic_string}'转换为'const char *'以将参数'1'转换为'int atoi(const char *)' int mynum = atoi(mystring);
答案 0 :(得分:2)
如果您使用std::string
,则可以atoi
使用std::string::c_str()
方法,或直接使用std::stoi
:
int val = std::stoi(mystring);
使用boost
,您可以使用boost::lexical_cast
:
int val = boost::lexical_cast<int>(mystring);
请注意,atoi
已经是历史记录,主要是因为它是旧的C
标准库函数。现代代码正在使用lexical_cast
或stoi
。
答案 1 :(得分:1)
试试这个:
string mystring = "77";
int mynum = atoi(mystring.c_str());
或在C ++ 11中:
string mystring = "77";
int mynum = stoi(mystring);
答案 2 :(得分:0)
使用此
int mynum = atoi(mystring.c_str());