При программировании на C (именно С !!!) при введении числа через scanf_s("%d", &num) если я ввожу букву иди строку, то программа начинает жить своей жизнью, что в принципе логично. Как реализовать цикл чтобы при каждом вводе строки/буквы в этот сканер он запрашивал ввод заново?

21 Мар 2020 в 19:43
146 +1
0
Ответы
1

Вы можете использовать цикл do-while, чтобы запрашивать ввод заново, пока не будет введено корректное значение. Например:

#include <stdio.h>
int main() {
int num;
char ch;
do {
printf("Введите число: ");
if (scanf_s("%d", &num) != 1) {
scanf_s("%c", &ch, sizeof(ch)); // считываем символ
printf("Ошибка! Введите число.\n");
}
} while (scanf_s("%d", &num) != 1);
printf("Вы ввели число: %d\n", num);
return 0;
}

В данном примере программа будет запрашивать ввод числа, пока не будет введено корректное число. Если введена строка или символ, программа выдаст сообщение об ошибке и попросит ввести число заново.

18 Апр в 15:55
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир