¿Cómo puedo evitar la entrada de caracteres para una variable int?

El programa a continuación muestra un valor 'int' que se ingresa y se emite al mismo tiempo. Sin embargo, cuando ingresé un carácter, entra en un bucle infinito que muestra el valor 'int' anterior ingresado. ¿Cómo puedo evitar que se introduzca un personaje?

#include<iostream>
using namespace std;

int main(){
int n;

while(n!=0){
            cin>>n;
            cout<<n<<endl;
           }
return 0;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta