2012-07-29 63 views
1

题目全是问题。 我正在做一个计算器,我显然需要输入。我使用cin >>函数,但我想知道是否有方法来测试输入以查明它是否是一个数字。 如果我输入任何不是数字的东西,程序就会崩溃。有内置的函数/运算符吗?请帮忙!有没有方法可以测试输入是否是C++中的数字?

+0

的[如何将数字转换为字符串,反之亦然在C++]可能重复(http://stackoverflow.com/questions/5290089/how-to-convert- a-number-to-string-and-vice-in-c) – KillianDS 2012-07-29 09:22:45

+1

@KillianDS它不是关于“将数字转换为字符串”,而是“检查输入是否是数字” – 2012-07-29 09:25:29

+1

@rafl:您无法检查如果它是一个没有至少尝试转换的数字。大多数转换函数提供了一个“失败”机制,您可以在这里使用。根本不需要重新发明轮子。 – KillianDS 2012-07-29 09:26:16

回答

3

输入运营商将只读取到一个整数,如果输入一些。否则它会将字符留在输入缓冲区中。

尝试这样的事情

int i; 
if (cin >> i) 
{ 
    // input was a number 
} 
else 
{ 
    // input failed 
} 
0

atoisscanf是你的朋友,或者只是比较,如果输入的charCode为在“0”内 - “9”的范围

+1

你应该在你的答案中加入一些例子。 – 2012-07-29 09:12:18

相关问题