Учебное пособие: Препроцессорные средства в C и С++

В классе ios определены данные, характеризующие состояние потока, и функции, позволяющие получить доступ к информации о состоянии потока или изменить его состояние. Состояние потока определяется набором битовых флагов, для обращения к отдельным флагам в классе ios описаны перечислимые константы:

- биты состояния (статуса) потока

enum io_state { goodbit = 0x00, // ??????? ???? ?? ???????????, ??? ?????? eofbit = 0x01, // ????? ????? failbit = 0x02, // ?????? ? ????????? ???????? ?????/?????? badbit = 0x04, // ??????? ????????? ???????? ???????? hardfail = 0x80 // ???????????? ?????? };

- биты режима использования потока (режима ввода/вывода)

enum open_mode { in = 0x01, // ????? ?????? ??? ?????? out = 0x02, // ????? ?????? ??? ?????? ate = 0x04, // ??????? ? ????? ????? ??? ???????? app = 0x08, // ????? ?????????? ? ????? ????? trunc = 0x10, // ???????? ????????????? ????? nocreate = 0x20, // ?????? ???????? ?????, ???? ?? ?? ?????????? noreplace = 0x40, // ?????? ????????, ???? ???? ?????????? binary = 0x80 // ???????? (?? ?????????) ???? };

- флаги направления позиционирования в потоке

enum seek_dir { beg=0, cur=1, end=2 };

- флаги - манипуляторы управления вводом/выводом

enum { skipws = 0x0001, // ?????????? ??????? ??? ????? left = 0x0002, // ???????????? ????? ??? ?????? right = 0x0004, // ???????????? ?????? ??? ?????? internal = 0x0008, // ?????? ????? ????? ??? ????????? ??????? ????????? dec = 0x0010, // ?????????????? ? ?????????? ??????? ????????? oct = 0x0020, // ?????????????? ? ???????????? ??????? ????????? hex = 0x0040, // ????????????????? ?????????????? showbase = 0x0080, // ???????????? ????????? ??????? ????????? ??? ?????? showpoint = 0x0100, // ????????? ?????????? ????? ??? ?????? //(? ?????? ? ????????? ??????) uppercase = 0x0200, // ????????? ????? ??? ????????????????? ?????? showpos = 0x0400, // ????????? '+' ??? ????????????? ????? scientific= 0x0800, // ????????? ??????? ???? 1.2345E2 fixed = 0x1000, // ????????? ??????? ???? 123.45 unitbuf = 0x2000, // ??????? ??? ?????? ????? ??????? ? ????? stdio = 0x4000, // ??????? stdout, stderr ????? ??????? ? ????? boolalpha = 0x8000 // ?????????/????????? ?????? ??? ????? ??? ????? };

Поскольку эти перечислимые константы объявлены как компоненты класса ios, для доступа к ним требуется уточнение контекста, например, ios::in.

Класс streambuf обеспечивает создание и использование буфера ввода-вывода и содержит компоненты-данные для управления буфером и методы д?

К-во Просмотров: 262
Бесплатно скачать Учебное пособие: Препроцессорные средства в C и С++