Например есть
int a;
cin >> a;
И нужно при записи ограничить величину, то есть например что бы a было больше 0 и не больше 100.
Возможно ли такое в c++ и как это сделать?
Ответ
Так годится?
int inputInt(const char * prompt, int m = INT_MIN, int M = INT_MAX)
{
int N;
for (;;) {
std::cout << prompt << " (целое от " << m << " до " << M << "): " << std::flush;
if ((std::cin >> N).good() && (m <= N) && (N <= M)) return N;
if (std::cin.fail()) {
std::cin.clear();
std::cout << "Неверный ввод, повторите.
";
} else {
std::cout << "Число вне допустимого диапазона значений. Повторите ввод.
";
}
std::cin.ignore(100,'
');
}
}
a = inputInt("Введите число от 0 до 100",0,100);
Комментариев нет:
Отправить комментарий