C++ как я могу поймать исключение, если кто-то вводит текст вместо числа?
Я пытаюсь заставить кого-то ввести число от -1 до 122. Я хочу использовать throw, catch и try, если кто-то вводит символ или строку вместо числа. Если это лучший способ сделать это?
#include <iostream> using namespace std; int main() { int age; int x = 0; int y = 121; cout << "Enter you age: "; cin >> age; if (age >= x && age <= y) cout << "So your age is: " << age << ", that's believable"; else cout << "Your age is " << age << "? Not Believable!"; return 0; }
Что я уже пробовал:
Я пытался играть с броском, ловлей, попыткой, но я недостаточно хорошо осведомлен, чтобы правильно это закодировать.
0x01AA
Лично я бы потратил еще немного работы на случай, если кому-то понадобится прочитать целое число. Я имею в виду чтение символа за символом, чтобы проверить, является ли это цифра или знак, и принять его или нет.
getchar-ссылка на C++ [^]
Наконец, это закончится только одним исключением "вне диапазона", потому что сам вход уже полностью валидирован ;)
Richard MacCutchan
getchar
это старый стиль C, а не C++, и он плохо сочетается с std::cin
.
0x01AA
Я все понял, спасибо. Я не очень хорошо знаком с этой старой консольной штукой. Это было что-то до 25 лет, когда я использовал его в последний раз в модуле 2 ;)