我试图让防御性编程以整数形式输入,但如果我输入一个字符,程序将进入无限循环。然后我切换到将输入作为字符,但它会循环两次。一次用于错误字符,一次用于行尾击键。
有没有办法让循环,只有一次?
代码:
int main(int argc, char *argv[])
{
char choice='5';
while (choice != '1' && choice !='2' && choice !='3' && choice!='4' && choice!='0')
{
printf("Parakalw epilekste ena apo ta parakatw\n\n");
printf("1.\tKafe 1.5 euro\n");
printf("2.\tKafe me gala 1.8 euro\n");
printf("3.\tSokolata 2.1euro\n");
printf("4.\tSokolata me gala 2.4 euro\n");
printf("0.\tExodos\n\n");
printf("parakalw eisagete thn epilogh sas: ");
scanf("%c",&choice);
}
system("PAUSE");
return 0;
}