Программирование >>  Программирование на языке c++ 

1 ... 99 100 101 [ 102 ] 103 104 105 ... 159


8. ПОТОКИ ВВОДА/ВЫВОДА

8.1. Библиотека ввода/вывода (iostream)

Библиотека ввода/вывода содержит две параллельные группы классов:

1) главным базовым классом первой группы является класс streambuf, который обеспечивает организацию и взаимосвязь буферов ввода/вывода, размещаемых в памяти, с физическими устройствами ввода/вывода;

2) главным базовым классом второй группы является класс ios, который содержит средства для форматированного ввода/вывода и проверки ошибок.

Класс streambuf фактически содержит средства для выполнения низкоуровневых операций ввода/вывода, для которых почти не требуется форматирование. На рис. 8.1 показаны класс streambuf и три его производных класса. Функции всех этих классов используются классами второй группы (т. е. ios и его потомками).

Диаграмма наследования для основных классов второй группы приведена на рис. 8.2. Заметим, что каждая конкретная система программирования может использовать различные варианты этой диаграммы. Возле прямоугольника с классом на рис. 8.2 записан файл заголовка *.h, в который включены соответствующие описания. При работе с выбранным классом файл заголовка надо включить в программу директивой #include <*.h>.

Пусть ххххх обозначает некоторую часть слова любой длины. Тогда имена классов на рис. 8.2 назначены в соответствии со следующими правилами:

кхххх - содержит функции ввода данных;



streambuf

fstream.h

filebuf

strstreambuf

iostream.h

conbuf

constrea.h

strstrea.h

Puc. S.I. Класс streambuf и его потомки

oxxxxx - содержит функции вывода данных;

ioxxxxx - содержит функции ввода/вывода данных;

fxxxxx - содержит функции для работы с файлами;

strxxxxx - содержит функции для работы со строками;

ifxxxxx - содержит функции ввода данных из файлов;

istrxxxxx - содержит функции ввода данных из строк;

ofxxxxx - содержит функции вывода данных в файлы;

ostrxxxxx - содержит функции вывода данных в строки.

Дадим краткую характеристику классам на рис. 8.1. Классы, показанные на рис. 8.2, будут подробно описаны в последующих параграфах этой главы.

Класс conbuf содержит функции, которые модифицируют вывод данных на экран дисплея. Он имеет один конструктор с атрибутом public:

conbufO;

Рассмотрим некоторые из компонентов-функций этого класса (они выполняются для заданного окна, частным случаем которого является полный экран дисплея):

void clreolO - удаляет текст от курсора до конца строки;

void clrscrO - очищает экран;

void dellineO - удаляет текущую строку;

void gotoxy(int x,int у) - перемещает курсор в позицию экрана с координатами х и у;




iostream.h / fstream.h

iostream.h

I istream fstreambase strstreanibase [ ostrstream

ifstream

fstream.h


fstream fstream.h

ostrstream

strstream.h

strstream strstream.h

Рис. 8.2. Диаграмма наследования для основных классов-потомков ios

void iiiglivideoO - устанавливает повышенную яркость выводимых символов;

void lowvideoO - устанавливает пониженную яркость выводимых символов;

void normvideoO - устанавливает нормальную яркость выводимых символов;

void textbackground(int new color) - устанавливает цвет фона;

void textcolor(int new color) - устанавливает цвет символов в текстовом режиме;



1 ... 99 100 101 [ 102 ] 103 104 105 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.007
При копировании материалов приветствуются ссылки.
Яндекс.Метрика