Циклы std :: cin, даже если я вызываю ignore () и clear ()

Я пытаюсь настроить цикл проверки ввода, чтобы он непрерывно запрашивал у пользователя действительный (целочисленный) ввод, но, похоже, он заперт в бесконечном цикле.

Я искал решения и пыталсяignore() а такжеclear(), но это все еще не останавливается.

Не могли бы вы исправить меня, где я здесь не так?

int num;
cin >> num;
while (cin.fail()) {
  cin.ignore();
  cin.clear();
  cout << "Enter valid number: " << endl;
  cin >> num;
}

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

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