如何在C++中将字符串转换为整数?

43.*_*4D. 1 c++ string integer

到目前为止,这是我的代码:

 #include "stdafx.h"
 #include <iostream>
 #include <string>
 using namespace std;

 int main()
 {
 string exp;
 cout << "Enter a number and raise it to a power" << endl;
 cin >> exp;
 int num = exp[0];
 int pow = exp[2];

 cin.get();
 cin.ignore(256,'\n');
 }
Run Code Online (Sandbox Code Playgroud)

基本上,我正在尝试制作一个程序,你可以输入类似"2 ^ 5"的东西,它会为你解决它.到目前为止,我已经取了字符串的第一个和第三个值,称它们为"num"和"pow".(数量,功率)如果你尝试像"cout << num;"这样的东西 它会给你十进制的Ascii值.如何将其转换为小数?

Raf*_*cki 6

您可以cin直接读取整数变量:

int n;
std::cin >> n;
Run Code Online (Sandbox Code Playgroud)

但你不能以这种方式进入看起来很自然的表情.

要阅读2^5您可以使用std::stringstream:

int pos = exp.find('^');
int n;
std::stringstream ss;
if(pos != std::npos){
    ss << exp.substr(0, pos);
    ss >> n;
}
Run Code Online (Sandbox Code Playgroud)

和第二个变量类似.

此方法在Boost中实现boost::lexical_cast.

更复杂的表达式需要构建解析器,我建议您阅读更多有关此主题的内容.