如何让用户在询问时以e ^ x或sqrt(x)的形式输入数字,而不是仅以数字形式输入数字?感谢。
答案 0 :(得分:0)
通常这是一个解析问题。在这两种形式的情况下,一个简单的解决方案可能是:
string input;
getline(cin, input);
if (input[0] == 'e' && input[1] == '^') {
int num = atoi(input.substr(2).c_str()); // probably better to use stringstreams here
cout << exp(num) << endl;
} else if (input.substr(0, 5) == "sqrt(" && input[input.size() - 1] == ')') {
int num = atoi(input.substr(5, input.size() - 6).c_str());
cout << sqrt(num) << endl;
} else {
cout << "error" << endl;
}
没有测试,但应该大致正确。如果你需要处理更多细微的案例或者不仅仅是这两个案例,你将需要做更精细的解析。