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值.如何将其转换为小数?
您可以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.
更复杂的表达式需要构建解析器,我建议您阅读更多有关此主题的内容.