Кодint check_value(int &value)
{
bool check = true;
string temp = "";
do
{
getline(cin, temp, '\n');
for (int i = 0; i < temp.size(); i++)
{
if (temp[i] != '2' && temp[i] != '3' && temp[i] != '4' && temp[i] != '5' && temp[i] != '6'
&& temp[i] != '7' && temp[i] != '8' && temp[i] != '9' && temp[i] != '0' && temp[i] != '1'
&& temp[i] == ' ')
{
cout << "Ошибка! Введите корректное значение:" << endl;
cin.clear();
check = false;
break;
}
else
{
check = true;
}
}
} while (!check);
if (check)
{
value = stoi(temp);
return value;
}
}
Доброго времени суток!
Есть функция, которая проверяет корректность вводимых данных. Она должна выдавать ошибку, если введённое значение не является числом. Функция работает корректно во всех случаях, например:
"2 a"- ошибка,
"2 2" - ошибка. Но если ввести
2а - ошибку не выдаёт. Через отладчик смотрел, когда доходит до
"a", то считает значение правильным и не заходит внутрь if. В чем моя ошибка?
Спасибо.