什么有效:
double a1;
a1 = 2+4;
std::cout << a1;
我想要的是:
double a1;
std::cin >> a1;
std::cout << a1;
但是当我输入2 + 4时,我得到输出2,然后是4,我希望它能够立即求和。
答案 0 :(得分:2)
C ++不会神奇地为你做数学运算,你需要解析输入,检查错误并进行计算。对于简单的数学运算,您可以使用流操作,以使其更具进步性,我建议使用regexp,对于更多的高级语法,您需要解析器http://www.boost.org/doc/libs/1_59_0/libs/spirit/repository/example/qi/calc1_sr.cpp。
std::regex pattern("(\\d+)\\s*(\\+)\\s*(\\d+)");
std::string line;
while (std::getline(std::cin, line)) {
std::smatch sm;
if (std::regex_match(line, sm, pattern)) {
int val1 = std::stoi(sm[1]);
std::string op = sm[2];
int val2 = std::stoi(sm[3]);
std::cout << (val1 + val2) << "\n";
}
}