SHA_bash
@SHA_bash

Как проверить на int?

Привет!
Как проверить ввод ОТ ПОЛЬЗОВАТЕЛЯ на целочисленное значение?
Например:
int a;
cin >> a;
Если (a != int) то...
Подскажите синтаксис записи условия, пожалуйста!
  • Вопрос задан
  • 11523 просмотра
Решения вопроса 2
int a;
cin >> a;

if (cin.fail()) {
	cin.clear();
	cin.ignore(numeric_limits<streamsize>::max(), '\n');

	cout << "Вы ввели не число!" << endl;
}
else {
	cout << "Вы ввели число " << a << endl;
}
Ответ написан
Комментировать
@cython
Если пользователь значение, которое нельзя привести к типу переданной переменной, то в переменную ничего не будет записано, то есть у переменной останется прежнее значение (в вашем случае a будет равно 0). Также, можно проверить удачность последнего ввода через cin.good, или через результат выполнения cin >> a:
int a;
if (cin >> a) {
	cout << a << endl;
} else {
	cout << "Incorrect input" << endl;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
У вас же есть некий диапазон корректных значений, которые вы ждете от пользователя?
Перед вводом присвойте переменной некорректное значение.
После ввода проверяйте значение на корректность.
Вот и вся проверка.

Вообще любой пользовательский ввод надо проверять на корректность, а так же содержимое конфигов и т.п.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы