루프를 사용하여 1-5 사이의 입력을 받아야합니다. 다른 입력을 받으면 1-5를 얻을 때까지 반복해야합니다.C에 문자가 입력되면 루프를 종료하는 방법은 무엇입니까?
내가 뭘 잘못하고 있는지 말해 줄 수 있겠 니? 내 코드의
부 :
int rateSelected, weeklyHours;
printf("Enter the number corresponding to the desired pay rate or action:\n");
printf("1) %.2lf$/hr 2) %.2lf$/hr\n", RATE1, RATE2);
printf("3) %.2lf$/hr 4) %.2lf$/hr\n", RATE3, RATE4);
printf("5) Quit\n");
while ((scanf("%d", &rateSelected)) != EOF && rateSelected != 5)
{
if (rateSelected > 5 || isalpha(rateSelected) ==1){
printf("please enter a number between 1-5:\n");
continue;
}
printf("Now enter your weekly hours:\n");
scanf("%d", &weeklyHours);
ChoosePayRate(rateSelected, weeklyHours);
}
TNX
의
-5 '상태에서'rateSelected <1 '도 확인해야합니다. – Constantin
누군가가 문자를 입력하면'scanf ("% d", & rateSelected)'가 실패하고, 0을 리턴하고 (! = EOF') _ 다음 입력을 위해 buffer_에 잘못된 입력을 남긴다. 무한 루프 'rateSelected'가 값을 가지지 않는 한 5). –