C++中如何限定用户输入数字
2个回答
展开全部
有两种方法:
第一种是输入完了再整体判断,如果不符合要求就重新输入,比如:
do{scanf("%d",&A);}while(A<0||A>100);
这样的话如果你输入的A这个数小于0或大于100,就会一直不停的让你重新输入。这样做的优点是简单,缺点是你无法及时控制,也就是在输入过程中,是可以输入非数字的字符的。比如输入9at3。
第二种是使用getch( )函数。这是一个不回显的函数,也就是说这个函数直接从控制台读取一个字符,但不显示在屏幕上。这个时候你就可以及时做判断,如果符合要求进行下一步,不符合要求忽略或怎么样的。这个函数必须在程序的最开头包含头文件 #include <conio.h>。比如:
#include <conio.h>
……
char c;
int i,a=0;
for(i=0;i<2;i++)
{do{c=getch();}while(c<'0'||c>'9'); //如果不是输入0-9之间的字符,直接被忽略
printf("%c",c); //显示c这个字符(因为getch函数不回显,所以要手动显示)
a=a*10+(c-'0');} //把字符转化成数字
这样做的优点是除了你想要的字符,输入其它字符都无效。缺点是比较麻烦,要手动显示,还要转化为数据。
不知您想要哪一种?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询