Как организовать функцию?

компьютеры Компьютеры программирование программы C++

есть класс, в нем переменная типа int и функция задания этой переменной с ограничителями
int Time::SetH(int H)
{
while(H>24 || H<0) std::cout<<" Часы введены не правильно "<<endl&&cout<<"Введите часы"&&cin>>H;
if(H<24 || H>=0)hours = H;
return 1;
}

как ее дополнить, чтобы если пользователь случайно введет набор букв, функция не зациклилась?

Примечание:
Извиняюсь за некорректность но она вроде падает.
т.е. если я ввожу букву
появляется дофига строк
Часы введены не правильноВведите часы
Как этого избежать?
Ответы:
Если пользователь введёт набор букв, по функция не зациклится. Не очень помню, как это в Ц++ происходит, но, по идее, программа должна упасть с исключением, потому что набор букв никак нельзя в int поместить.
Upd:
Ну как это нельзя?
---
А, вот так, нельзя, в общем случае. Если сопоставить буквы цифрам и использовать их для представления цифр системы счисления с большим основанием - это совершенно другой разговор, ибо мы меняем семантику, сохраняя лишь символику.
Этого можно было избежать, если бы вы внимательно ознакомились с устройством потоков С++. :)


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.