Для практики я пишу программу, которая выступает в качестве главного меню. Я хочу, чтобы пользователь выбирал один из вариантов. Он отлично работает, когда пользователь вводит целое число, но, когда персонаж вводится печатает этотВывод «бесконечно» при вводе символа вместо цифры
бесконечно, а не просто печать «Invalid ...», а затем просить другой вход.
#include <stdio.h>
#include <conio.h>
int main()
{
int menu_choice, User_Num, MENU, count;
MENU=1;
do
{
printf(" *---------------------------------------*\n");
printf(" | |\n");
printf(" | 1. Individual 2. Group 3.Exit |\n");
printf(" | |\n");
printf(" *---------------------------------------*\n\n");
printf(" -----------------------------------------------------------------\n");
printf("| Type '1' if you want to enter as an individual |\n");
printf("| Type '2' if you want to know enter as a group |\n");
printf("| Type '3' if you want to to stop the program |\n");
printf(" -----------------------------------------------------------------\n");
printf("What is your choice?");
scanf(" %d", &menu_choice);
if (menu_choice==1)
{
User_Num=1;
printf("Accepted\n");
}
else if (menu_choice==2)
{
do
{
printf("How many users?: ");
scanf(" %d", &User_Num);
if (User_Num<2)
printf("Invalid Input. Try Again \n");
} while (User_Num<2);
printf("Accepted\n");
}
else if (menu_choice==3)
{
printf("Good Bye and Thank You");
MENU=0;
}
else
{
printf("Invalid Input. Try Again \n");
}
} while (MENU);
getch();
}
Вам нужно очистить оставшееся недействительное _feed_ до scanf(). –