Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
umm_3690.pdf
Скачиваний:
24
Добавлен:
30.04.2015
Размер:
364.53 Кб
Скачать

СТАНДАРТНАЯ БИБЛИОТЕКА

Стандартную библиотеку С++ можно разделить на две части. К первой части относятся функции, макросы, типы и константы, унаследованные из библиотеки С; ко второй – классы и другие средства С++.

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

между оперативной памятью и внешними устройствами, также в пределах оперативной памяти.

Строковый класс – предназначен для работы с символьными переменны-

ми.

Контейнерные классы – реализуют структуры для хранения данных (списки, векторы, множества).

Итераторы – предназначены для унифицированного доступа к элементам классов.

Математические классы – поддерживают обработку массивов с плавающей точкой и работу с комплексными числами.

Диагностические классы – обеспечивают динамическую идентификацию типов и объектно-ориентированную обработку ошибок.

Остальные классы обеспечивают динамическое распределение памяти и ряд других функций.

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

ПОТОКОВЫЕ КЛАССЫ

Поток – это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику.

Чтение данных из потока называется извлечением, вывод в поток – помещением или включением. Поток определяется как последовательность байтов

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

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

По виду устройств, с которыми работает поток, можно выделить стандартные, файловые и строковые потоки.

Стандартные потоки предназначены для передачи данных от клавиатуры

ина экран.

Файловые потоки – для обмена информацией с файлами на внешних устройствах.

Строковые потоки – для работы с массивами символов.

33

Для поддержки потоков библиотекаС++ содержит иерархию классов, построенную на основе двух базовых классов – ios и streambuf. Класс ios содержит общие для ввода и вывода поля и методы, класс streambuf обеспечивает буферизацию потоков и их взаимодействие с физическими устройствами.

Далее перечисляются часто используемые классы потоков: ios – базовый класс потоков;

istream – класс входных потоков; ostream – класс выходных потоков;

iostream – класс двунаправленных потоков; istringstream – класс входных строковых потоков; ostringstream – класс выходных строковых потоков; stringstream – класс двунаправленных потоков; ifstream – класс входных файловых потоков; ofstream – класс выходных файловых потоков; fstream – класс двунаправленных файловых потоков. Описание классов находится в заголовочных файлах: <ios> – базовый класс ввода/вывода;

<iosfwd> – предварительные объявления средств ввода/вывода; <istream> – шаблон потока ввода;

<ostream> – шаблон потока вывода;

<iostream> – стандартные объекты и операции с потоками ввода/вывода; <fstream> – потоки ввода/вывода в файлы;

<sstream> – потоки ввода/вывода в строки; <streambuf> – буферизация потоков ввода/вывода; <iomanip>–манипуляторы (см. далее).

Стандартные потоки

Заголовочный файл <iostream> помимо описания классов для - вво да/вывода содержит четыре предопределенных объекта (табл.1).

 

 

Таблица 2

 

Предопределенные объекты

 

 

 

Объ-

Класс

Описание

ект

 

 

cin

istream

Связывается с клавиатурой(стандартным буфе-

 

 

ризованным вводом)

cout

ostream

Связывается с экраном (стандартным буферизо-

 

 

ванным выводом)

cerr

ostream

Связывается с экраном(стандартным не буфе-

 

 

ризованным выводом), куда направляются со-

 

 

общения об ошибках

clog

ostream

Связывается с экраном (стандартным буферизо-

 

 

ванным выводом), куда направляются сообще-

34

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]