在测试程序(在C中)以防止任何错误时,我在程序要求输入整数时偶然点击\。然后while循环开始失败。一个例子:
int a;
while(1){
scanf("%d",&a);printf("%d\n",a);
a--;
if(a==0){break;}
}
每当我键入数字时,都应该打印相同的数字。但是当我输入一个字符时,它会打印出前一个输入下面的所有数字,然后开始打印它下面的所有数字,直到1。 任何人都可以提供解决这个问题的线索吗?非常感谢。
编辑:这个程序只是bug的一个例子,实际程序比这个大得多。
答案 0 :(得分:0)
您不需要使用while循环来打印您输入的数字。这就够了:
int a;
scanf("%d",&a);
printf("%d\n",a);
或者如果您想从输入数字打印到One:
int a;
while(1){
scanf("%d",&a);
printf("%d\n",a);
a--;
if(a<=0){break;}
}
使用a<=0
进行比较,因为即使您输入了错误的输入,它也不会创建无限循环。
答案 1 :(得分:0)
在这种情况下,你不需要 - 。
int a;
while(1){
scanf("%d",&a);
printf("%d\n",a);
if(a==0)
break;
}