C ++中的Double.parseDouble()等效?

时间:2012-10-05 09:21:48

标签: c++ equivalent

  

可能重复:
  std::string to float or double

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

该计划执行以下操作:

  1. 询问用户第一个号码
  2. 询问用户想要使用的数字( - ,+,*,/)
  3. 询问第二个号码
  4. 显示结果。
  5. 当用Java从用户那里获取一个数字时,我使用了Double.parseDouble(数字)来检查他们输入的是否是一个数字。

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

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

    谢谢!

3 个答案:

答案 0 :(得分:4)

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

另外,正如Joachim Pileborg所说,如果你使用符合C ++ 11的编译器,标准库中会有std::stod

答案 1 :(得分:0)

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

示例用法:

const char* = "3.14159";
double pi = atof(myDouble);

答案 2 :(得分:-1)

如何使用isdigit功能。