Я новичок в C ++, и мне пришла в голову идея написать «короткий тест», чтобы использовать «enum» и иметь более четкое представление о том, как он работает. Моя идея состоит в том, чтобы показать пользователю три варианта, и он / она должен будет ввести число, соответствующее правильному варианту. Это изображает ситуацию:
# include <iostream>
int main(){
std::cout << "Which one is the capital of Ireland?";
std::cout << "\n1-Barcelona\n2-Frankfurt\n3-Dublin\n";
std::cout << "Please introduce the number of the correct option";
enum question {barcelona=1,frankfurt=2,dublin=3};
int iAnswer;
std::cin >> iAnswer;
question eAnswer= static_cast<question>(iAnswer);
Проблема с этим кодом состоит в том, что после приведения целого числа, введенного пользователем (iAnswer), нет сообщения об ошибке / предупреждения, когда такого числа не существует в «вопросе» параметры типа данных. Другими словами; если бы пользователь ввел 100, после приведения iAnswer мы могли бы видеть, что нет никакой опции, связанной с 100, поскольку единственные допустимые значения - 1,2 и 3. Тогда возникает вопрос ... как я могу проверить, что число, введенное пользователем, делает существуют в моих вариантах enum? почему кастинг не показывает ошибку, когда теоретически кастинг не может быть успешно выполнен?
Спасибо !!