Я предлагаю ввести ввод как строку и проверить для него числовые символы. Если ввод действителен, преобразуйте строку в int с помощью sscanf(str,"%d",&i); или ошибки diplay.
sscanf(str,"%d",&i);