C++ 如何将声明为字符串的整数转换为int类型?
我尝试过这个解决方案,但不起作用C++ 如何将声明为字符串的整数转换为int类型?,c++,c++11,C++,C++11,我尝试过这个解决方案,但不起作用 string mystring = "77"; int mynum = atoi(mystring); 错误:无法将参数“1”的“std::string{aka std::basic_string}”转换为“const char*”,将其转换为“int atoi(const char*)” int mynum=atoi(mystring) 试试这个: string mystring = "77"; int mynum = atoi(mystring.c_str
string mystring = "77";
int mynum = atoi(mystring);
错误:无法将参数“1”的“std::string{aka std::basic_string}”转换为“const char*”,将其转换为“int atoi(const char*)”
int mynum=atoi(mystring)
试试这个:
string mystring = "77";
int mynum = atoi(mystring.c_str());
或者在C++11中:
string mystring = "77";
int mynum = stoi(mystring);
用这个
int mynum = atoi(mystring.c_str());
如果您使用
std::string
,您可以将atoi
与std::string::c_str()
方法一起使用,或者直接使用std::stoi
:
int val = std::stoi(mystring);
使用boost
可以使用boost::lexical\u cast
:
int val = boost::lexical_cast<int>(mystring);
int val=boost::词法转换(mystring);
注意,
atoi
已经是历史,主要是因为它是旧的C
标准库函数。现代代码使用的是词法转换
或stoi
我不工作。错误:“stoi”未在此范围内声明。那么您是否在编译器中包含string
并启用了c++11
?你的问题被标记为c++11
标记,因此你必须知道它是什么以及如何打开它。当我使用std::stoi时,我收到一个错误,说“stoi”不是std的成员。@FreeSlave那么你在编译器中包括string
并打开了c++11
?您的问题标有c++11
标记,因此您必须知道它是什么以及如何打开它。