ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 12) онлайн
Переизбыток символов
Проблема превышения при вводе допустимого числа символов встречается до-
вольно часто. Обычно это происходит при передаче входного потока с ошибка-
ми. Лишние символы все еще остаются в потоке после того, как ввод уже счита-
ется завершенным. Затем они передаются еще и в следующую операцию ввода,
несмотря на то, что совершенно для этого не предназначены. Часто в конце оста-
ется символ новой строки, но иногда и другие. Чтобы избежать случайного из-
влечения из потока лишних символов, используется метод istream — функция
ignore(MAX, DELIM). Она считывает и выкидывает вплоть до MAX числа символов,
включая указанный ограничитель. В нашем примере выражение
cin.ignored(10, "\n');
приводит к считыванию до 10 символов, включая ограничитель '\n', и удалению
их из входного потока.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48