Целочисленная проверка для ввода
Я попытался предложить пользователю ввести данные и выполнить проверку. Например, моя программа должна принимать 3 пользовательских ввода. Как только он достигнет нецелого числа, он напечатает сообщение об ошибке и снова запросит ввод. Вот как будет выглядеть моя программа при запуске:
Введите номер:
Неверный ввод
Введите номер: 1
Введите номер: b
Неверный ввод
Введите номер: 2
Введите номер: 3
Введенные числа 1,2,3
И вот мой код:
double read_input()
{
double input;
bool valid = true;
cout << "Enter number: " ;
while(valid){
cin >> input;
if(cin.fail())
{
valid = false;
}
}
return input;
}
Мой основной метод:
int main()
{
double x = read_input();
double y = read_input();
double z = read_input();
}
Когда мой первый ввод не целочисленный, программа просто завершается сама. Он не просит подсказки снова. Как я мог это исправить? Или я должен использовать цикл do while, поскольку я запрашиваю ввод данных пользователем.
Заранее спасибо.