以下是我的C代码。C程序的奇怪行为
#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch;
do
{
printf("\n1.create\n2.display\n3.exit\n\t");
printf("Enter your choice:: ");
scanf("%d",&ch);
printf("choice = %d\n\n", ch);
if(ch==32767)
return 0;
switch(ch)
{
case 1:
printf("\n Case 1 executed\n");
break;
case 2:
printf("\nCase 2 executed\n");
break;
case 3:
printf("\nExit\n");
exit(0);
break;
default:
printf("Wrong choice!!!");
break;
}
}while(ch!=3);
return 0;
}
问题是,当我为ch输入整数值时它工作正常。 但是,当我输入任何字符时,它将以无限循环运行。
任何人都可以解决它。
运行它通过一个调试器,然后回到这里,如果你不明白发生了什么。如果你在Linux上,我会推荐GDB ... –
@Prabin你为什么要输入'ch'作为整数类型?您稍后需要该号码进行进一步处理吗?如果否,那么使用'int'解析非严格整数输入可能不是最好的解决方案。如果你需要'switch-case'以外的值,那么将输入字符/字符串作为选项,然后在正确输入的情况下提取整数值?在任何情况下,我强烈建议在可能的非数字输入情况下不要使用_only_“int”类型输入。 – penelope