namespace std { class ios_base::failure : public system_error { public: explicit failure(const string& msg, const error_code& ec = io_errc::stream); explicit failure(const char* msg, const error_code& ec = io_errc::stream); }; }
Реализацию разрешено определять ios_base::failure как синоним класса с функциональностью, эквивалентной классу, ios_base::failure показанному в этом подпункте. [ Note: Когда ios_base::failure является синонимом другого типа, он должен предоставлять вложенный тип failureдля имитации имени внедренного класса. ] Класс определяет базовый класс для типов всех объектов, созданных как исключения функциями в библиотеке iostreams, чтобы сообщать об ошибках, обнаруженных во время операций с буфером потока. — end note failure
При ios_base::failure создании исключений реализации должны предоставлять значения, ec которые определяют конкретную причину сбоя. [ Note: Ошибки, возникающие в операционной системе, обычно сообщаются как system_category() ошибки со значением ошибки, равным номеру ошибки, сообщаемому операционной системой. Об ошибках, возникающих в библиотеке потоков, обычно сообщается как error_code(io_errc::stream, iostream_category()). ] — end note
explicit failure(const string& msg, const error_code& ec = io_errc::stream);
explicit failure(const char* msg, const error_code& ec = io_errc::stream);
using fmtflags = T1;
Тип fmtflags - это bitmask type. Установка его элементов имеет эффекты, указанные в Табл 107.
Элемент | Эффект (ы), если установлен |
boolalpha | вставить и извлечь bool тип в алфавитном формате |
dec | преобразует целочисленный ввод или генерирует целочисленный вывод в десятичной системе счисления |
fixed | генерировать вывод с плавающей запятой в нотации с фиксированной запятой |
hex | преобразует целочисленный ввод или генерирует целочисленный вывод в шестнадцатеричной системе счисления |
internal | добавляет символы заливки в обозначенную внутреннюю точку в определенном сгенерированном выводе или идентично, right если такая точка не обозначена |
left | добавляет символы заливки справа (конечные позиции) определенного сгенерированного вывода |
oct | преобразует целочисленный ввод или генерирует целочисленный вывод в восьмеричной системе счисления |
right | добавляет символы заполнения слева (начальные позиции) определенного сгенерированного вывода |
scientific | генерирует вывод с плавающей запятой в экспоненциальной нотации |
showbase | генерирует префикс, указывающий числовую основу сгенерированного целочисленного вывода |
showpoint | безоговорочно генерирует символ десятичной точки в сгенерированном выводе с плавающей запятой |
showpos | генерирует + знак в неотрицательном сгенерированном числовом выводе |
skipws | пропускает начальные пробелы перед определенными операциями ввода |
unitbuf | сбрасывает вывод после каждой операции вывода |
uppercase | заменяет определенные строчные буквы их эквивалентами в верхнем регистре в сгенерированном выводе |
using iostate = T2;
Типом iostate является a bitmask type , содержащий элементы, указанные в таблице 109.
Элемент | Эффект (ы), если установлен |
badbit | указывает на потерю целостности во входной или выходной последовательности (например, на неисправимую ошибку чтения из файла); |
eofbit | указывает, что операция ввода достигла конца входной последовательности; |
failbit | указывает, что операция ввода не смогла прочитать ожидаемые символы или что операция вывода не смогла сгенерировать желаемые символы. |
using openmode = T3;
Тип openmode - это bitmask type. Он содержит элементы, указанные в таблице 110.
Элемент | Эффект (ы), если установлен |
app | стремиться закончить перед каждой записью |
ate | открывать и стремиться к завершению сразу после открытия |
binary | выполнять ввод и вывод в двоичном режиме (в отличие от текстового режима) |
in | открыт для ввода |
out | открыт для вывода |
trunc | обрезать существующий поток при открытии |
using seekdir = T4;
Тип seekdir - это объект enumerated type , содержащий элементы, указанные в таблице 111.
Элемент | Имея в виду |
beg | запросить поиск (для последующего ввода или вывода) относительно начала потока |
cur | запросить поиск относительно текущей позиции в последовательности |
end | запросить поиск относительно текущего конца последовательности |
namespace std {
class ios_base::Init {
public:
Init();
~Init();
private:
static int init_cnt; // exposition only
};
}
Класс Init описывает объект, конструкция которого обеспечивает создание восьми объектов, объявленных в <iostream> ([iostream.objects]), которые связывают буферы файловых потоков со стандартными потоками C, предусмотренными функциями, объявленными в <cstdio>.
Для демонстрации поддерживаемые данные представлены здесь как:
static int init_cnt, подсчитывает количество вызовов конструктора и деструктора для класса Init, инициализированного нулем.
Init();
Effects: Создает объект класса Init. Формирует и инициализирует объекты cin, cout, cerr, clog, wcin, wcout, wcerr, и , wclog если они еще не были построены и инициализируется.
~Init();