🧙Конкурс сказок!
C++/C++11
(OFF) UltimateGear (B) 11 янв 2018

Заблокировать ввод буквенных значений

Добрый вечер всем, с прошедшими Вас праздниками.

На носу курсовая. Весь проект я сделал, но только сегодня столкнулся с проблемой, что во время выбора пункта меню в консоли, если случайно ввести любую букву, программа начинает глючить (не реагирует ни на какое либо действие).

Собственно вопрос. Можно как-то ограничить ввод?

Я нашел способ через константу и функцию bool и еще способ через cin.get.

Может вы подскажете какой-то простенький вариант, возможно есть какие либо альтернативы

Комментарии (9)

Сделай ввод символа, потом проверяй: цифра там или буква.
Проверять через if или while?
Смотря что ты хочешь сделать.
Если заколебать пользователя, пока он не введёт цифру - то через while.
А если послать приколиста и закрыть программу - то через if.
А как это примерно должно выглядеть?

cout<<"Введите время отправления: ";
while (!cin || (c > 23 || c < 0) {
вот тут как правильно должно быть?
Не надо всё пихать в одну строчку! При такой хитрой записи ты сам не разберёшься в коде.
Делай нормальный цикл.
Есть цикл с постусловием (то есть: после условием)
do
{
}
while ();
Если надо вводить время - тем более: только строка!
Потом строку разбирать: где там часы, а где минуты.
у меня отдельно два ввода в файл
Сперва время с 0 по 23
А потом минуты
юзай регулярные выражения(это смотря чем пользуешься), или же if / switch
(B)
Хм, есть стандартные функции определения того, является ли вводимый символ буквой либо цифрой -- вроде как std::isdigit и иже с ними
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
C++/C++11
Марс
После ошеломляющей новости о находке воды на Марсе...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play