读书人

为什么小弟我输入字符时会进去死循环

发布时间: 2012-12-30 10:43:15 作者: rapoo

为什么我输入字符时会进去死循环,而不是让我再次输入
#include<stdio.h>
int main()
{

while(1){
float money;
if(scanf("%f",&money)==1){
printf("输入正确\n");
}
else{
printf("输入有误,请重新输入\n");

}}
}
[解决办法]


#include<stdio.h>
int main() {
while (1) {
float money;
if (scanf("%f", &money) == 1) {
printf("输入正确\n");
} else {
getchar(); // 读取非法字符
printf("输入有误,请重新输入\n");

}
}
return 0;
}


[解决办法]
你输入的内容不符合%f但是还是会存在于行缓冲区里,下次还会用上次输入的数据去匹配%f,所以会存在死循环;解决办法是将行缓冲清空。

读书人网 >C语言

热点推荐