Lo ideal seria revisar el porque se da la supuesta falla y comenzar nuevamente, pero como en el ejemplo que pusiste eso no se realiza, lo equivalente estricto seria algo como:
Código
do { cin>>a; }while(!cin.fail());
Para enterarte un poco mas sobre los flags que chequea ::fail, lee esto. Y también podes buscar sobre excepciones
pero a que es equivalente p´s!!!!!
Mejora un poco la forma de pedir las cosas, ya sabes que nadie nos paga por ayudar, mas bien cada uno lo hace porque quiere hacerlo, así que un "por favor" sumado a una cuota extra de paciencia te van a venir bien. Ok?
Saludos