Получение нескольких входных данных и их проверка С++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получение нескольких входных данных и их проверка С++

Сообщение Anonymous »


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

Код:
#include #include enum Input1 {Тип1 = 1, Тип2 = 2, Тип3 = 3, Тип4 = 4}; перечисление Input2 {Тип11 = 5, Тип22 = 17}; bool validate_input(Ввод1, Ввод1, Ввод2, Ввод2 = Тип11) { if(input1 != Type1 && input1 != Type2 && input1 != Type3 && input1 != Type4) { вернуть ложь; } if(input2 != Type11 && input2 != Type22) { вернуть ложь; } вернуть истину; } интервал основной() { интервал iInput1, iInput2, iInput3; Вход1 eВход1; Вход2 eВход2; логический return_val; делать { std::cout > iInput1; если (std::cin.fail()) { станд::cin.clear(); std::cin.ignore(std::numeric_limits::max(), '\n'); } eВход1 = (Вход1) iВход1; return_val = validate_input(eInput1); если (!return_val) { std::cout iInput2; если (std::cin.fail()) { станд::cin.clear(); std::cin.ignore(std::numeric_limits::max(), '\n'); } еВход2 = (Ввод2) iВход2; return_val = validate_input(eInput1, eInput2); если (!return_val) { std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»