Если пользователь значение, которое нельзя привести к типу переданной переменной, то в переменную ничего не будет записано, то есть у переменной останется прежнее значение (в вашем случае a будет равно 0). Также, можно проверить удачность последнего ввода через cin.good, или через результат выполнения cin >> a:
int a;
if (cin >> a) {
cout << a << endl;
} else {
cout << "Incorrect input" << endl;
}