Целочисленная проверка для ввода

Я попытался предложить пользователю ввести данные и выполнить проверку. Например, моя программа должна принимать 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, поскольку я запрашиваю ввод данных пользователем.

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос