Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将声明为字符串的整数转换为int类型?_C++_C++11 - Fatal编程技术网

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
标记,因此您必须知道它是什么以及如何打开它。