C ++ проверяет пользовательский ввод - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы получить два целых, один за другим, и убедиться, что пользовательский ввод является целым числом.Если это не целые числа, я бы хотел, чтобы пользователь мог вводить новые данные.Является ли исключение хорошим решением здесь?Если да, то какое исключение я должен использовать?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я думаю, вы можете найти этот ответ интересным: Подобный вопрос

Просто проверьте, является ли тип тем, который вам нужен, а затем выполните необходимую операцию, то есть повторно запросите пользователя:вставить данные.

0 голосов
/ 19 декабря 2018

Исключение не является хорошим решением.Исключения предназначены для обработки исключительных событий, позволяя разработчикам чистить поток управления ниже пресловутого коврика, обеспечивая при этом уничтожение любых объектов в процессе.

В зависимости от вашего сценария вы пытаетесь обрабатывать только ожидаемые события.Что еще более важно, эти события являются ключевой частью вашего потока управления.Следовательно, нет смысла пытаться скрыть важную часть вашего счастливого пути.

Тем не менее, стандартный C ++ действительно включает в себя стандартные исключения, разработанные для представления исключений, вызванных логическими ошибками (т. Е. std::logic_error), которые включаютспециализации для значений за пределами (т. е. std::domain_error, std::length_error и std::out_of_range), а также недопустимых аргументов (т. е. std::invalid_error).Однако имейте в виду, что эти исключения предназначены для представления исключительных событий, а не для вашего основного потока управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...