Почему cin.clear () исправляет бесконечный цикл, вызванный неправильным вводом в cin?

Мы написали оператор switch и создали значение по умолчанию, в котором просто говорилось, что пользователь выбрал неправильный вариант и повторил ввод. Я хотел убедиться, что если возникнет проблема, он сначала очистит буфер, поэтому я использовал cin.sync (), но введя 'a' для ввода еще вызвал бесконечный цикл. Я добавил cin.clear (), чтобы очистить флаги, которые дали мне рабочий код ... но моя путаница заключается в том, почему это работает. Разве cin.sync () не работает, если есть флаг сбоя?

утверждение следует, сокращенно для краткости:

while(exitAllow == false)
{
    cout

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

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