将一个非数字值输入到float

时间:2014-08-01 21:01:13

标签: c++ char cout cin

我有这个简单的代码,我将值输入到两个浮点变量并显示它们。我无法理解的是如果我将输入作为非数字输入会发生什么。就像我输入'(没有'')一样,会产生一个奇怪的数字--2.69525 + 0323.21398e = 039。这个数字是如何以及为什么产生的?

#include<iostream.h>

int main()
{
    float x,y;
    cin>>x>>y;
    cout<<x<<y;
    return 0;
}

另外,如何阻止某人输入非数字值?我想过将数字存储在一个数组中,迭代它并使用isdigit(),也可以看一下是否出现一个小数点,它应该只出现一次,但这似乎不是一个好方法。有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

- 2.69525+0323.21398e=039实际上是两个奇怪的数字,它们之间没有空格。

它们很可能是x&amp;中的随机值。 y开头。 cin失败了,所以没有改变。

如何阻止某人输入非数字值?

  • 对他们大喊大叫并且没有威胁到甜点。 - 或 -
  • 将值导入为字符串,将它们作为数字进行验证,然后将它们转换为浮点值。