В C scanf пропускает читать значение int - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь создать консольную программу с меню в 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])();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...