перевожу на человеческий язык: "если введена строка, не являющаяся корректным строковым представлением целого десятичного числа" в си есть функции помимо atoi, которые позволяют отслеживать, произошла ли ошибка при преобразовании просто читаешь строку и пропускаешь через strtoll, например для с++ есть вариант с исключениями, но я не помню, кидает ли их ifstream при чтении некорректных данные со входа