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

Класс istream

Класс istream, наследник класса ios, выполняет специфические действия по вводу

данных — извлечение. Очень легко спутать извлечение и связанное с ним дейст-

вие по выводу данных — вставку. Рисунок 12.2 показывает разницу.

В табл. 12.6 собраны функции istream, которые вам могут пригодиться.

Таблица 12.6. Функции istream

Функция             Назначение

>>          Форматированное извлечение данных всех основных (и перегружаемых)  типов из потока

get(ch) Извлекает один символ в ch

get(str)                Извлекает символы в массив str до ограничителя '\n'

get(str, MAX)    Извлекает до MAX числа символов в массив

 

Функция             Назначение

get(str, DELIM)

                Извлекает символы в массив str до указанного ограничителя (обычно '\n'). Оставляет ограничитель в потоке

get(str, MAX, DELIM)    Извлекает в массив str до MAX символов или до символа DELIM.  Оставляет ограничитель в потоке

getline(str, MAX,

DELIM) Извлекает в массив str до MAX символов или символа DELIM.

Извлекает ограничитель из потока

putback(ch)       Вставляет последний прочитанный символ обратно во входной поток

ignore(MAX, DELIM)

                Извлекает и удаляет до MAX числа символов до ограничителя  включительно (обычно '\n'). С извлеченными данными ничего не  делает

peek(ch)             Читает один символ, оставляя его в потоке

count=gcount()

                Возвращает число символов, прочитанных только что встретившимися  вызовами get(), getline() или read()

read(str, MAX) (Для файлов.) Извлекает вплоть до MAX числа символов в массив str

seekg()                Устанавливает расстояние (в байтах) от начала файла до файлового  указателя

seekg(pos,seek_dir)

                Устанавливает расстояние (в байтах) от указанной позиции в файле  до указателя файла. seek_dir может принимать значения ios::beg,  ios::cur, ios::end

pos=tellg(pos)  Возвращает позицию (в байтах) указателя файла от начала файла

 

Дисковый файл

 

Рис. 12.2. Файловый ввод/вывод

Там уже встречались некоторые из этих функций, например get(). Большин-

ство из них рассчитаны на работу с объектом cin, обычно представляющим со-

бой поток данных, вводимых с клавиатуры. А последние четыре функции пред-

назначены только для работы с дисковыми файлами.

 

7