inline void clear_istream(std::istream& stream)
{
while (stream.get() != '\n')
;
}
template <typename numeric> void check_error(std::istream& stream, numeric& x)
{
while (!(stream >> x))
{
stream.clear(); //обновить флаги в std::cin, чтобы открыть дальнейший ввод
clear_istream(stream); //очистить ввод
std::cerr << "You entered wrong value. Please enter an integer number: ";
}
}check_error(std::cin, arr[i]);