我希望用户输入的输入应该在0到100之间。如果他或她输入负数或大于100的数字或字符,循环必须被触发。我正在使用do-while循环来验证用户输入的输入。但是如果我输入一个字符,那么do while循环将被执行无限次。任何人都可以解释这是为什么发生!以及如何检查用户是否已经输入了char或int?使用scanf验证输入(检查输入是char还是int)
代码用C写成,用GCC编写。
int num;
do
{
printf("num :");
scanf("%d", &num);
}
while(num<0 || num>=100);
“如果他或她进入负数或数超过100或字符时,循环必须被触发“你的意思是你的循环应该停止或开始? – Prudhvi 2015-04-04 22:27:43
您需要清除输入缓冲区 – 2015-04-04 22:28:38
@prudhvi是循环应该开始。但是当我输入一个字符时,“num:”语句被无限打印 – Anonymous 2015-04-04 22:31:45