指数和平方根作为用户输入

时间:2014-01-13 22:11:10

标签: c++ input

如何让用户在询问时以e ^ x或sqrt(x)的形式输入数字,而不是仅以数字形式输入数字?感谢。

1 个答案:

答案 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;
}

没有测试,但应该大致正确。如果你需要处理更多细微的案例或者不仅仅是这两个案例,你将需要做更精细的解析。