Как правило, это происходит при передаче входного потока с ошибками. Лишние символы продолжают оставаться в потоке после завершения ввода. Затем они проникают в следующую операцию ввода. Часто остается не принятым символ новой строки. Чтобы избежать случайного извлечения из потока лишних символов, используется функция класса istream по имени ignore(MAX, DELIM). Она считывает и удаляет из входного потока вплоть до MAX символов, включая ограничитель, указанный как аргумент DELIM. В вышеприведенной программе выражение cin. ignore(10, '\n'); приводит к считыванию до 10 символов, включая ограничитель '\n', и удалению их из входного потока.