Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Лекции по объектно-ориентированному программированию (С++).doc
Скачиваний:
111
Добавлен:
02.05.2014
Размер:
226.82 Кб
Скачать

Потоки ввода / вывода.

Библиотека потоков обеспечивает механизмами для извлечения данных из потоков и для помещения данных в поток.

Каждый поток (кроме строковых) связывается с помощью операционной системы с определенным внешним устройством. При обмене с устройством используется участок оперативной памяти (буфер потока). При вводе данных они помещаются сначала в буфер, и только потом в программу. При выводе – сначала также в буфер, только потом данные попадают к внешнему устройству. Заполнение и очистка буферов – это работа ОС, которая делает это без явного участия программ. Мы можем рассматривать поток в прикладной программе как последовательность байтов, которая не зависит от конкретного устройства, с которым производится обмен.

В зависимости от реализации направления передачи данных потоки делят на 3 группы:

1). Входные (из которых читается информация);

2) Выходные (в которые вводятся данные);

3) Двунаправленные.

iosбазовый потоковый класс;

fstream класс двунаправленных файловых потоков

ios

класс

двунаправленных

потоков

istream ostream

классы классы

входных iostream выход.

файлов. файлов. поток. ifstream ofstream потоков

fstream

iostream.h – Для ios, istream, ostream.

fstream .h – Для ifstream, ofstream, fstream.

ios – базовый потоковый класс, который содержит все общие сведения, то есть данные, которые относятся к состояниям потоков и методы, которые позволяют менять эти свойства.

Стандартные объекты – потоки.

сin – объект стандартного класса istream, который связан со стандартным входным потоком (клавиатура).

сout - объект класса ostream, который связан со стандартным выходным потоком (монитор).

Операции помещения и извлечения.

Как видно из иерархии для ввода и вывода есть 2 основных класса: istream, ostream.

Класс ostream используют для вывода операции левого сдвига (<< ) , перегрузив её. Если эта операция применяется к объектам потока, то её называют операцией помещения в поток.

cout<< “ Hello ! ”;

Класс istream перегружает для реализации ввода оператор правого сдвига, который называется операцией извлечения из потока.

cin>> name;