Глава 13. Обзор потоков ввода-вывода___________________________373
peek мы проверяем, какой символ находится в потоке следующим (одиннадцатым).
Функция peek позволяет прочитать следующий символ в потоке ввода, не удаляя его из потока. Эта функция не имеет аргументов и возвращает целочисленное значение. Ее можно использовать для проверки всех вводимых символов на предмет их попадания в определенный диапазон.
Функция ignore объявлена следующим образом:
istreams ignore(int n = 1, int delim = EOF);
Заметьте, что при стандартных значениях аргументов эта функция пропустит один символ, если не встретится разделитель EOF.
Форматирование потоков вывода
С помощью членов класса ostream, унаследованных от базового класса, можно форматировать вывод. Содержание процесса наследования на данном этапе нас не очень занимает. До сих пор мы рассматривали, как использовать объект cout и операцию « для вывода данных базовых типов. Теперь мы посмотрим, как с помощью флагов формата можно менять внешний вид вывода.
Классы istream и ostreariT наследуют свои флаги формата от класса ios. Если вам нужно найти какие-либо сведения о классе iostream, начните свои поиски с файла ios.h; дополнительные подробности о флагах формата ищите в разделе ios справочной системы Borland C++.
Флаги формата перечислены в табл. 13.1. Их можно устанавливать с помощью функции setf, имеющей два варианта:
long setf(long _setbits, long _field);
long setf(long) ;
// Первая форма // Вторая форма
Первая форма функции позволяет задать в аргументе _setbits устанавливаемые флаги, а в аргументе _field — сбрасываемые. Во второй форме устанавливаемые флаги передаются функции в виде длинного целого аргумента, их значения определены в файле ios.h и перечислены в табл. 13.1. К этим значениям нужно приставлять имя класса — ios.
Флаг Назначение
skipws Пропустить при вводе пробелы и символы табуляции
left Выровнять вывод влево
right Выровнять вывод вправо