ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 12) онлайн

Переизбыток символов

Проблема превышения при вводе допустимого числа символов встречается до-

вольно часто. Обычно это происходит при передаче входного потока с ошибка-

ми. Лишние символы все еще остаются в потоке после того, как ввод уже счита-

ется завершенным. Затем они передаются еще и в следующую операцию ввода,

несмотря на то, что совершенно для этого не предназначены. Часто в конце оста-

ется символ новой строки, но иногда и другие. Чтобы избежать случайного из-

влечения из потока лишних символов, используется метод istream — функция

ignore(MAX, DELIM). Она считывает и выкидывает вплоть до MAX числа символов,

включая указанный ограничитель. В нашем примере выражение

 

cin.ignored(10, "\n');

 

приводит к считыванию до 10 символов, включая ограничитель '\n', и удалению

их из входного потока.

 

14