您的位置:首页 > 编程语言 > C语言/C++

解决C语言从键盘输入不合法数据所导致的死循环

2016-10-24 20:42 369 查看
当在C程序中输入不合法的数据时,往往可能会导致一些死循环出现,例如:

#include<stdio.h>
int main()
{
int k=1;
while(k)
{
printf("请输入一个非零整数:");
scanf("%d",&k);
printf("%d\n",k);
}
return 0;
}


当输入小数时:



当输入字符时:



当输入整数加字符时:



都会出现这种死循环,

这时我们可以用一个if语句做判断

if(!scanf("%d",&k))
{
printf("输入错误\n");
scanf("%s",&a);
}


不过这里的小数和真数加字符串还是不行,会再次循环一边,系统会把小数认为整数加字符串:



但至少解决了单纯的字符串问题同时也不会导致死循环
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 死循环