整数として入力する防御的なプログラミングをしようとしましたが、文字を入力するとプログラムは無限ループに陥ります。次に、文字として入力するように切り替えましたが、ループが 2 回行われます。1 回は間違った文字で、もう 1 回は行末のキーストロークです。
一度だけループを取得する方法はありますか?
コード:
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;
}