0

可能重复:
std::string 浮动或加倍

我正在写一个计算器(学习 C++),刚决定做一个计算器,因为这是我学习 Java 时做的第一件事。

该程序执行以下操作:

  1. 询问用户的第一个号码
  2. 询问用户想对数字做什么(-、+、*、/)
  3. 要求第二个号码
  4. 显示结果。

在 Java 中从用户那里获取数字时,我使用 Double.parseDouble(number) 检查他们输入的内容是否为数字。

C++中有类似的命令吗?我一直在做研究,似乎你必须使用一些技巧,比如将它与 ASCII 等价物进行比较等。基本上,一个简单的任务需要大量代码......所以在我走这条路之前,我想在这里停下来看看如果可能有某种呼叫我可以检查输入是否是数字。我需要它来验证负数、零和正数,以及带小数的数字......其他所有内容都应该被拒绝,并且应该再次要求用户输入。

当我在 Java 中执行此操作时,我使用了 try/catch 语句,如果输入无效,它将返回方法(换句话说,它本身),因此它将循环并再次询问用户输入。

谢谢!

4

3 回答 3

4

您可以使用strtod. 它以方便的方式处理下溢和超出范围的值。

此外,正如 Joachim Pileborg 所指出的,如果您使用符合 C++11 的编译器,则std::stod标准库中有。

于 2012-10-05T09:24:34.880 回答
0

使用函数 double atof(const char*) ;

示例用法:

const char* = "3.14159";
double pi = atof(myDouble);
于 2012-10-05T09:26:08.333 回答
-1

如何使用isdigit函数。

于 2012-10-05T09:27:19.990 回答