para ver si cin esta corrupto.
por ejemplo si tienes la linea
int a;
cin >> a;
y tu ejecutas como entrada
entonces cuando ejecute cin.fail() te devolvera true indicandote que algo salio mal en la ultima operacion de cin (en este caso cin >> a)
Hay 3 flags de error para cin
fail: error en la ultima operacion efectuada
bad: error por perdida de integridad en el stream (es decir q quedo inutilizado)
eos: se llego al fin del archivo
Estos flags sirven para comprobar si las operaciones con cin, cout, cerr o cualquier otro stream fueron o no correctas