Если вы хотите sh, чтобы пользователь мог ввести любое значение, то лучше всего получить их в std::string
. Затем вы можете выполнить любой вид проверки для предоставленного ввода.
bool IsValidInt(const std::string & str)
{
for (auto i = 0; i < str.size(); i++)
{
if (!isdigit (str[i]))
{
// If a single non-digit character is found,
// then provided input is not integer
return false;
}
}
return true;
}
Затем во время извлечения ввода от пользователя вы можете сделать что-то вроде этого:
std::string heightStr;
cin >> heightStr
if(IsValidInt(heightStr))
{
// If input has all digits, convert to int
int height = stoi(heightStr);
}
else
{
cout << "Error: width is a non-integer value" << endl;
}