Я пытаюсь создать консольную программу с меню в c. Но у меня проблема с проверкой значения параметра int. Когда я ставлю значение char, оно принимает его. Я пытаюсь поймать это состояние. Он понимает условие, но scanf не работает во второй раз для чтения ввода. Это просто пропускает. Мой код ниже. Спасибо за помощь!
while (true) {
printf("%s", "Choose one option: ");
while (scanf("%d", &choice) != 0) {
puts("This is not a number! Enter again:");
}
// checking input
while (choice < 1 || choice > 8){
puts("Wrong input! You can choose only 1 - 8!");
printf("%s", "Choose one option: ");
scanf("%d", &choice);
}
if (choice == 8)
break;
(*options[choice])();
}