Como evito um loop de entrada descontrolado quando solicito um número, mas o usuário digita um não número?

Preciso saber como fazer com que minha instrução cin não pareça se 'remover' se você inserir o tipo errado. O código está aqui:

int mathOperator()
{
  using namespace std;

  int Input;
  do
  {
    cout << "Choose: ";
    el();
    cout << "1) Addition";
    el();
    cout << "2) Subtraction";
    el();
    cout << "3) Multiplication";
    el();
    cout << "4) Division";
    el();
    el();
    cin >> Input;

  }
  while (Input != 1 && Input != 2 && Input!=3 && Input!=4);
  return Input;
}

Execute, insira, por exemplo, um caractere e faça um loop sem parar, agindo como se a instrução cin não estivesse lá.

questionAnswers(6)

yourAnswerToTheQuestion