Здавалка
Главная | Обратная связь

Поток - последовательность байтов, не зависящая от устройств, с которыми ведется обмен данными.



Примечание:Обмен данными с потоком часто сопровождается участием вспомогательного участка памяти - буфера потока. Если буфер потока используется, поток является буферизированным, если нет - небуферизированным. Использование буфера повышает скорость передачи данных.


Процессы, изображенные на рисунках, протекают следующим образом:

  • Перед тем, как данные, выводимые программой, будут переданы к внешнему устройству, они помещаются в буфер потока.
  • При вводе данных они вначале помещаются в буфер и только затем передаются в область памяти выполняемой программы.
  • Использование буфера повышает скорость передачи данных, так как настоящие пересылки осуществляются только тогда, когда буфер уже заполнен (при выводе) или пуст (при вводе).

В программах классификация потоков представляет собою следующее:

  • Входные потоки - потоки, из которых читается информация.
  • Выходные потоки - потоки, в которые вводятся данные.
  • Двунаправленные потоки - потоки, допускающие как чтение, так и запись.

Отметим, что работу, связанную с заполнением и очисткой буферов ввода-вывода, операционная система практически всегда берет на себя и выполняет без участия программиста. Очень важно, что никакой связи значений байтов, содержащихся в потоке с кодами какого-либо алфавита не предусматривается. Задача программиста при вводе-выводе с помощью потоков - установить связь между участвующими в обмене объектами и последовательностью байтов потока, в которой отсутствуют всякие сведения о типах передаваемой информации. Именно этим мы и попытаемся сегодня заняться.

Предыдущая Оглавление Следующая
Предыдущая Оглавление Следующая

Ввод-вывод в языке С++.

Напомним, что с самого начала изучения языка программирования С, и его логического продолжения С++, мы подключали к нашим программам библиотеку iostream. На самом деле предназначение этой библиотеки встроить в программу часть библиотеки ввода-вывода, построенной на основе механизма классов.

Описанные в этом файле средства ввода-вывода предоставляют нам орудие для извлечения данных из потоков и для включения данных в потоки.

Примечание:Расшифруем название: iostream.h: stream - поток, "i" - сокр. input - ввод, "o" - сокр. output - вывод.

В библиотеке iostream есть четыре предопределенных объекта-потока, ассоциированных со стандартным вводом и выводом. Рассмотрим их:

  1. cin - объект класса istream, связанный со стандартным буферизированным входным потоком (обычно с клавиатурой).
  2. cout - объект класса ostream, связанный со стандартным буферизированным выходным потоком (обычно с дисплеем).
  3. cerr - объект класса ostream, связанный со стандартным небуферизированным выходным потоком (обычно с дисплеем), в который направляются сообщения об ошибках.
  4. clog - то же, что cerr, но буферизирован.

При подключении к программе файла iostream происходит формирование объектов cin, cout, cerr и clog, т.е. создаются соответствующие стандартные потоки, и программисту становятся доступными связанные с ними средства ввода-вывода.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.