C ++ cin.fail () вопрос

При запуске следующего кода и вводе числа, все работает нормально. Но при вводе буквы программа входит в бесконечный цикл, отображающийВведите число (0 для выхода): cin не удалось. "

Мое намерение состояло в том, чтобы обработать случай сбоя cin и снова предложить пользователю.

int number;
do{
    cout < "Enter a number (0 to exit): ";
    cin >> number;
    if(cin.fail()){
        cout < "cin failed." < endl;
        cin.clear();
    }else{
        cout < "cin succeeded, " < number < " entered." < endl;
    }
}while(number != 0);

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

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