以下是我的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