- •Часть 4. Стандартная библиотека
- •Екатеринбург
- •Введение
- •Потоковые классы
- •Стандартные потоки
- •Форматирование данных
- •Флаги и форматирующие методы
- •Манипуляторы
- •Методы обмена с потоком
- •Ошибки потоков
- •Файловые потоки
- •Строковые потоки
- •Конструкторы и присваивание строк
- •Операции
- •Функции Присваивание и добавление частей строк
- •Преобразование строк
- •Поиск подстрок
- •Сравнение частей строк
- •Получение характеристик строк
- •Оглавление
- •Часть 4. Стандартная библиотека
- •620002, Екатеринбург, ул.Мира, 19
- •620002, Екатеринбург, ул.Мира, 19
Федеральное агентство
по образованию ГОУ
ВПО «Уральский государственный
технический университет
УПИ»
Программирование
на языке C++
Методические
указания к лабораторным и самостоятельным
работам по курсу «Программирование
на языке С++» для слушателей курсов
повышения квалификации и студентов
всех форм обучения всех специальностей.
2006
Часть 4. Стандартная библиотека
Екатеринбург
УДК 681.3
Составитель: А. В. Кибардин
Научный редактор доц., канд.техн.наук Б. В. Семенов
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ с++. ч.4. Стандартная библиотека: методические указания к лабораторным и самостоятельным работам по курсу «Программирование на языке С++» / А. В. Кибардин. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006. 30 с.
Методические указания описывают стандартную библиотеку алгоритмического языка С++ и ориентированы на студентов, аспирантов, слушателей ФПК и подготовительного отделения, обучающихся основам современных информационных технологий.
Библиогр.: 3 назв. Табл.2.
Подготовлено факультетом повышения квалификации преподавателей и профессиональной переподготовки
УДК 681.3
© ГОУ ВПО “Уральский государственный
технический университет-УПИ”, 2006
Введение
Стандартную библиотеку С++ можно разделить на две части. К первой части относятся функции, макросы, типы и константы, унаследованные из библиотеки С; ко второй – классы и другие средства С++.
Классы стандартной библиотеки можно разделить на следующие группы.
Потоковые классы – предназначены для управления потоками данных между оперативной памятью и внешними устройствами, а также в пределах оперативной памяти.
Строковый класс – предназначены для работы с символьными переменными.
Контейнерные классы – реализуют структуры для хранения данных (списки, векторы, множества).
Итераторы – предназначены для унифицированного доступа к элементам классов.
Математические классы – поддерживают обработку массивов с плавающей точкой и работу с комплексными числами.
Диагностические классы – обеспечивают динамическую идентификацию типов и объектно-ориентированную обработку ошибок.
Остальные классы обеспечивают динамическое распределение памяти и ряд других функций.
Для использования средств стандартной библиотеки в программу следует включить соответствующие заголовочные файлы.
Потоковые классы
Поток – это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику.
Чтение данных из потока извлечением, вывод в поток – помещением или включением. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен. Обмен с потоком для увеличения скорости передачи данных производится, как правило, через специальную область данных – буфер.
По направлению обмена потоки можно разделить на входные (данные вводятся в память) и двунаправленные (допускающие как извлечение, так и включение).
По виду устройств, с которыми работает поток, можно выделить стандартные, файловые и строковые потоки.
Стандартные потоки предназначены для передачи данных от клавиатуры и на экран.
Файловые потоки – для обмена информацией с файлами на внешних устройствах.
Строковые потоки – для работы с массивами символов.
Для поддержки потоков библиотека С++ содержит иерархию классов, построенную на основе двух базовых классов – ios и sterambuf. Класс ios содержит общие для ввода и вывода поля и методы, класс steambuf обеспечивает буферизацию потоков и их взаимодействие с физическими устройствами.
Далее перечисляются часто используемые классы потоков:
ios – базовый класс потоков;
istream – класс входных потоков;
ostream – класс выходных потоков;
iostream – класс двунаправленных потоков;
istringstream – класс входных строковых потоков;
ostringstream – класс выходных строковых потоков;
stringstream – класс двунаправленных потоков;
ifstream – класс входных файловых потоков;
ofstream – класс выходных файловых потоков;
fstream – класс двунаправленных файловых потоков.
Описание классов находится в заголовочных файлах:
<ios> – базовый класс ввода/вывода;
<iosfwd> – предварительные объявления средств ввода/вывода;
<istream> – шаблон потока ввода;
<ostream> – шаблон потока вывода;
<iostream> – стандартные объекты и операции с потоками ввода/вывода;
<fstream> – потоки ввода/вывода в файлы;
<sstream> – потоки ввода/вывода в строки;
<streambuf> – буферизация потоков ввода/вывода;
<iomanip>–манипуляторы (см. далее).