Классы ввода вывода библиотеки стандарта C++
В языке C++ существует две версии библиотеки iostream: библиотека старого стиля, определенная ранними версиями C++, и библиотека определенная стандартом ANSI/ISO для языка C++(Standard C++), в которой реализован новый подход к программированию. Библиотека старого стиля была описана в предыдущей главе, а эта глава посвящена описанию библиотеки iostream, соответствующей стандарту ANSI/ISO для языка C++ Система ввода-вывода, соответствующая стандарту C++, построена на основе довольно сложной системы шаблонных классов. Ниже приведен список этих классов.
Кроме того, часть иерархии классов ввода-вывода составляет нешаблонный класс ios_base. Он предоставляет определения для различных элементов системы ввода-вывода. Вся система ввода-вывода C++ построена на двух связанных, но различных иерархиях шаблонных классов. Первая выведена из класса ввода-вывода нижнего уровня basic_streambuf. Этот класс поддерживает базовые операции ввода и вывода нижнего уровня и обеспечивает основополагающую поддержку для всей системы ввода-вывода C++. Классы basic_filebuf и bаsc_stringbuf выведены из класса basic_streambuf. Если вы не занимаетесь разработкой новых методов программирования ввода-вывода, вам вряд ли придется напрямую использовать класс basic_streambuf или его подклассы. В основном, вам придется работать с иерархией классов, которая выведена из класса basic_ios. Это класс ввода-вывода высокого уровня, который обеспечивает форматирование и обработку ошибок, а также предоставляет информацию о состоянии соответствующего потока ввода-вывода. Класс basic_ios используется в качестве базового для нескольких производных классов, включая такие классы, как basic_istream, basic_ostream и basic_iostream. Эти классы используются для создания потоков, способных выполнять операции ввода, вывода и ввода-вывода соответственно. Из класса basic_istream выведены классы basic_ifstream и basic_istringstream, из класса bаsic_ostream выведены классы basic_ofstream и basic_ostringstream, из класса basic_iostream выведены классы basic_fstream и basic_stringstream. Базовым для класса basic_ios является класс ios_base. Следовательно, любой класс, выведенный из класса basic_ios, имеет доступ к членам класса ios_base. Классы ввода-вывода параметризованы для типа символов, с которыми они работают, и для характеристик этих символов. Например, вот как выглядит спецификация шаблона для класса basic_ios. template Здесь элемент CharType задает тип символа(например, char или wchar_t), а элемент Attr определяет тип, который описывает его атрибуты. Обобщенный тип char_traits — это класс, который определяет атрибуты, относящиеся к некоторому символу. Библиотека ввода-вывода создает две специализации описанных выше иерархий шаблонных классов: одна - для 8-разрядных, а другая — для двухбайтовых символов. Ниже приводится полный список соответствия имен шаблонных классов их символьным версиям и версиям двухбайтовых символов.
Поскольку подавляющее большинство программистов будут использовать операции ввода-вывода, ориентированные на обработку символов, в данной главе используются именно эти имена (т.е. при ссылке на классы ввода-вывода мы будем просто использовать их "символьные" имена, а не внутренние имена шаблонов). Например, в этой главе вместо имени basic_ios будет употребляться имя ios, вместо basic_istream — имя istream и вместо basic_fstream — имя fstream. Помните, что для потоков, работающих с двухбайтовыми символами, существуют параллельные функции, которые действуют аналогично описанным выше. Иерархия классов
Смотрите также
Библиотека iostream стандарта C++ Класс iosНазначение: обеспечивает операции ввода-вывода общего назначения Методы
bad — Проверка потока на ошибку Класс ostreamНазначение: поддерживает операции вывода Методы
flush — Запись содержимого буфера Класс istreamНазначение: поддерживает операции ввода Методы
gcount — Возврат количества символов, прочитанных во время последней операции ввода Классы fstream, ifstream и ofstreamНазначение: поддерживает операции файлового ввода-ввода
Методы
close — Закрывает файл связанный с потоком Классы stringstream, istringstream и ostringstreamНазначение: поддерживает операции файлового ввода-ввода
Методы
str — Возвращает или освобождает строку заполненную текущим содержимым потока и вставляет, если необходимо другую |
Нет комментариев. Оставить комментарий: |