Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы


Скачать 449.68 Kb.
НазваниеЗадача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы
страница1/6
ТипЗадача
  1   2   3   4   5   6




Ввод – вывод данных

В программах по С++ можно равноправно использовать две библиотеки ввода – вывода: стандартную библиотеку функций ввода-вывода языка Си и библиотеку классов , специально созданную для С++. Библиотека функций становится доступной, как только к программе будет подключен файл <stdio.h> (или )

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

Файл iostream.h (<iostream>) связывает компилируемую программу с библиотекой ввода – вывода , построенной на основе механизма классов.

( stream – поток, i - input , o – output)

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

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

Итак, поток – это последовательность байт, не зависящая от тех конкретных устройств, с которыми ведется обмен данными.
При обмене часто используется вспомогательный участок оперативной памяти – буфер потока.

При выводе в буфер помещаются данные, перед тем как они будут переданы внешнему устройству.

При вводе данные сначала помещаются в буфер, а затем передаются в область памяти выполняемой программы

Буфер потока – вспомогательный участок основной памяти, используемый для хранения данных.

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

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

В современных версиях языка потоки представляются в программах объектами некоторых классов.

Используемые потоки делятся в соответствии с логикой обмена на три группы:

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

  2. выходные, в которые вводятся данные;

  3. двунаправленные, допускающие и чтение и запись.



Все потоки последовательные: в каждый момент для потока определена позиция обмена (для записи или чтения) и после обмена эта позиция перемещается по потоку на длину передаваемых при обмене данных. Для двунаправленных потоков определены две позиции (записи и чтения).
Потоки принято делить на стандартные, строковые и файловые, в зависимости от того, с какими «устройствами» связаны потоки.
Стандартные соответствуют передаче данных от клавиатуры в ОП и из ОП к экрану дисплея.
Если поток символов в совокупности образует символьный массив в ОП, то говорят о строковом потоке. Обмен данными происходит между различными участками оперативной памяти.
Если при использовании потока его символы размещаются на внешнем носителе, то говорят о файловом потоке.
Библиотека ввода – вывода, в отличие от других, это библиотека не функций, а классов.
Ниже представлена иерархия шаблонов потоковых классов

Иерархия шаблонов



ios_base




basic_ios<>



basic_ostream<>


basic_istream<>







basic_iostream<>





basic_istringstream<>

basic_ostringstream<>


basic_stringstream<>


basic_ifstream<>

basic_ofstream<>


basic_fstream<>



Шаблон классов basic_streambuf<> и его специализации обеспечивают буферизацию данных во всех классах, которые мы рассмотрим ниже. Обращаться к его методам и данным из прикладных программ обычно не нужно. Эти классы нужны другим производным классам т.к. обеспечивает их методами буферизации данных, однако эти методы обычно явно не используются. Поэтому методы класса streambuf мы подробно рассматривать не будем.


basic_streambuf<>



basic_filebuf<>

basic_stringbuf<>


Рассмотрим классы – специализации соответствующих шаблонов , которые программисты активно используют при потоковом вводе-выводе, используя для специализации потока тип данных char (альтернатива –wchar_t и тогда к именам потоков добавится в начале w) :
ios - базовый потоковый класс
istream - класс входных потоков
ostream - класс выходных потоков
iostream - класс двунаправленных потоков ввода - вывода
istringstream - класс входных строковых потоков
ostringstream - класс выходных строковых потоков
stringstream - класс двунаправленных строковых потоков ввода - вывода
ifstream - класс входных файловых потоков
ofstream - класс выходных файловых потоков
fstream - класс двунаправленных файловых потоков ввода - вывода

  1   2   3   4   5   6

Похожие:

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconПриказ от 7 сентября 2005 года об утверждении структуры и форматов...
Федеральной налоговой службы от 27 июня 2005 г. N 7н/саэ-3-10/285 "Об обмене информацией в электронном виде между управлениями Федерального...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconПрограмма (задача, мероприятие): Федеральная целевая программа развития...
Ректор фгбоу впо “Саратовский государственный университет имени Н. Г. Чернышевского”

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего
Установите соответствие между высказываниями каждого говорящего a-f и утверждениями^ данными в списке 1-7, Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы icon1 Вы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего A
Установите соответствие между высказываниями каждого говорящего a f и утверждениями, данными в списке 1 Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconАудирование вы услышите 6 высказываний. Установите соответствие между...
Установите соответствие между высказываниями каждого говорящего A–F и утверждениями, данными в списке 1 Используйте каждое утверждение,...

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

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconМежду службами третьих доверенных сторон стран участников Конвенции...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Вы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего A–F и утверждениями, данными в списке...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Установите соответствие между высказываниями каждого говорящего 1–6 и утверждениями, данными в списке A–G. Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Установите соответствие между высказываниями каждого говорящего 1–6 и утверждениями, данными в списке A–G. Используйте каждое утверждение,...

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на blankidoc.ru




При копировании материала укажите ссылку © 2024
контакты
blankidoc.ru