C++ C++;数字输入验证

C++ C++;数字输入验证,c++,visual-c++,C++,Visual C++,我需要使用getch()验证用户输入,只接受数字输入 `int input\u put=getch()` 如果(输入>=0&='0'&&input要最好地接受数字输入,必须使用std::cin.clear()和std::cin.ignore() 例如,从中考虑此代码 #包括 #包括 int main() { int年龄=0; 而((标准::曲线>年龄)){ 你的问题是?@suszterpatt,虽然我偶尔会对我的孩子们这样做(“我饿了!”,“很高兴知道,孩子,当你需要我做点什么的时候告诉我。”

我需要使用
getch()
验证用户输入,只接受数字输入


`int input\u put=getch()`
如果(输入>=0&<9){
}否则{
}

getch
返回字符代码。“0”的字符代码是48,而不是0,尽管您可以不用使用字符常量(因为字符常量实际上是整型常量),这将更具可读性。因此:

if (input >= '0' && input <= '9')

如果(输入>='0'&&input要最好地接受数字输入,必须使用std::cin.clear()和std::cin.ignore()

例如,从

中考虑此代码
#包括
#包括
int main()
{
int年龄=0;
而((标准::曲线>年龄)){

你的问题是?@suszterpatt,虽然我偶尔会对我的孩子们这样做(“我饿了!”,“很高兴知道,孩子,当你需要我做点什么的时候告诉我。”),但我想我们都可以弄明白,当有人说“我需要把这个插头给XYZZ”时,他们实际上是在问我们如何“XYZZ”一个“插头”:-)谢谢,这是可行的,但是我只能在if()中接受一个用户输入。我如何才能得到像10000这样的数字?@Sudantha:如果你真的,真的需要使用
getch
,那么你必须循环,直到你收到一个你定义为输入“结束”的字符(例如回车符)。如果这是家庭作业,那么这可能就是你的导师想要教你的,带着一个终端条件循环。如果不是,那么你想使用不同的输入机制的几率非常高。@T.J:事实上,这段代码将接受任何数字,不管范围如何。因此它也会接受负数作为输入。但是这就是为什么我说,范围检查器:
while(std::cout>age)“年龄小于1岁,100岁以下”……这是一个类似的事情。没关系,现在不是我学习更多关于C++流的时候。事实上,我希望这一天永远不会到来。——-请告诉我我错了。你删除了你的评论。我只是来这里学习的。AAK。好吧,事实上,我也在C++ FAQ上读过。这不是我的代码。是的,我想。我的评论是基于无知,所以我现在不再浪费你的时间了。:-)
if (input >= '0' && input <= '9')
if(input >= '0' && input <= '9')
if(isdigit(input))
 #include <iostream>
 #include <limits>

 int main()
 {
   int age = 0;

   while ((std::cout << "How old are you? ")
          && !(std::cin >> age)) {
     std::cout << "That's not a number; ";
     std::cin.clear();
     std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
   }

   std::cout << "You are " << age << " years old\n";
   ...
 }