【发布时间】:2015-06-09 17:04:30
【问题描述】:
我希望用户输入的输入应该介于 0 和 100 之间。如果他或她输入负数或大于 100 的数字或字符,则必须触发循环。我正在使用 do-while 循环来验证用户输入的输入。但是如果我输入一个字符,do while 循环就会无限次执行。谁能解释为什么会这样!以及如何检查用户是否输入了 char 或 int?
代码用 C 编写并使用 GCC 编译。
int num;
do
{
printf("num :");
scanf("%d", &num);
}
while(num<0 || num>=100);
【问题讨论】:
-
“如果他或她输入负数或大于 100 的数字或字符,则必须触发循环”您的意思是您的循环应该停止还是开始?
-
你需要清除输入缓冲区
-
@prudhvi 是的,循环应该开始。但是当我输入一个字符时,语句“num:”被无限打印出来
-
@AlejandroDíaz 你能详细说明一下吗?
-
@prudhvi 如果用户输入无效,循环应该继续。即只有当用户输入负数或大于 100 的数字或任何字符时,循环才应该起作用。在负数和大于 100 的情况下运行良好。但是当我输入一个字符时,循环正在无限执行