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

Exponents and square roots as user input

本文关键字:用户 输入 平方根 指数      更新时间:2023-10-16

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

通常这是一个解析问题。在这两种形式的情况下,一个简单的解决方案可能是这样的:

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

没有测试,但应该大致正确。如果您需要处理更细微的情况或不仅仅是这 2 个案例,则必须进行一些更精细的解析。