scanf接受数据进入死循环
scanf 传入一个不正确的数据类型 例如int型传入字母后进入死循环。拜托各位讲解下如何避免输入错误的数据类型后进入死循环,有点不太明白。# include<stdio.h>
void main(void)
{
int ch=0;
while (1) {
printf("执行的操作:");
scanf("%d", &ch);
if (ch == 1) { printf("1"); }
else if (ch == 2) { printf("2"); }
else {printf("键入错误,请重新输入!");}
}
} 本帖最后由 baige 于 2020-8-8 21:22 编辑
# include<stdio.h>
int main(void)
{
int ch=0;
int flag = 1;
while (1){
printf("执行的操作:");
flag = scanf("%d", &ch);
if(flag == 0)break;
if (ch == 1) { printf("1"); }
else if (ch == 2) { printf("2"); }
else {printf("键入错误,请重新输入!");}
}
return 0;
} 找到问题所在了,缓冲区的字符串没有被清除,打扰各位了,不好意思。
页:
[1]