Вы не можете контролировать, какие типы пользователей.В любом случае вы не должны полагаться на достоверность введенных пользователем данных.Наилучшим подходом будет выборка ввода в виде строки, проверка правильности ввода, а затем преобразование его в целое число.
// Check if each character entered in a digit
bool isValidString(string & inp)
{
for (int i = 0; i < inp.size(); i++)
{
// Checks whether inp[i] is a decimal digit character.
if (!isdigit(inp[i]))
{
// This is not a digit.
return false;
}
}
return true;
}
В основной функции:
int main()
{
string inp;
cin >> inp;
int outputIntValue = 0;
if (isValidString(inp))
{
// Converts the valid digits into integer
outputIntValue = atoi(inp.c_str());
printf("Integer value: %d\n", outputIntValue );
}
else
{
printf("Invalid input: %s\n", inp.c_str());
}
return 0;
}