std::ios_base
来自 cppreference.com
定义于头文件 <ios> |
||
class ios_base; |
||
类 ios_base
是一个多功能类,作为所有 I/O 流类的基类。它维护几种数据
1) 状态信息:流状态标志。
2) 控制信息:控制输入和输出序列格式化的标志以及注入的区域设置。
3) 私有存储:索引可扩展数据结构,允许 long 和 void* 成员,可以实现为两个任意长度的数组或一个包含两个元素结构体的数组或其他容器。
典型实现持有对应于所有 fmtflags、iostate、openmode 和 seekdir 值的成员常量,以及用于维护当前精度、宽度和格式标志的成员变量、异常掩码、缓冲区错误状态、保存回调的可调整大小容器、当前注入的区域设置、私有存储以及用于 xalloc() 的静态整型变量。
内容 |
[编辑] 成员函数
构造对象 (受保护成员函数) | |
[虚拟] |
析构对象 (虚拟公有成员函数) |
赋值给流 (公有成员函数) | |
格式化 | |
管理格式标志 (公有成员函数) | |
设置特定格式标志 (公有成员函数) | |
清除特定格式标志 (公有成员函数) | |
管理浮点运算的十进制精度 (公有成员函数) | |
管理字段宽度 (公有成员函数) | |
区域设置 | |
设置区域设置 (公有成员函数) | |
返回当前区域设置 (公有成员函数) | |
内部可扩展数组 | |
[静态] |
返回一个程序范围唯一的整数,可以安全地用作 pword() 和 iword() 的索引 (公有静态成员函数) |
如果需要,调整私有存储的大小,并访问给定索引处的 long 元素 (公有成员函数) | |
如果需要,调整私有存储的大小,并访问给定索引处的 void* 元素 (公有成员函数) | |
其他 | |
注册事件回调函数 (公有成员函数) | |
[静态] |
设置 C++ 和 C I/O 库是否可互操作 (公有静态成员函数) |
成员类 | |
流异常 (公有成员类) | |
初始化标准流对象 (公有成员类) |
成员类型和常量 | |||||||||||||||||||||||||||||||||||||||
类型 | 说明 | ||||||||||||||||||||||||||||||||||||||
流打开模式类型 还定义了以下常量
(typedef) | |||||||||||||||||||||||||||||||||||||||
格式标志类型 还定义了以下常量
(typedef) | |||||||||||||||||||||||||||||||||||||||
流类型的状态 还定义了以下常量
(typedef) | |||||||||||||||||||||||||||||||||||||||
查找方向类型 还定义了以下常量
(typedef) | |||||||||||||||||||||||||||||||||||||||
指定事件类型 (enum) | |||||||||||||||||||||||||||||||||||||||
回调函数类型 (typedef) |
|
(直到 C++17) |
[编辑] 缺陷报告
以下行为改变的缺陷报告已追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 发布的行为 | 正确的行为 |
---|---|---|---|
LWG 1357 (N3110) |
C++98 | std::ios_base 定义了 operator~,operator&和 operator| 用于类型 openmode ,fmtflags 和iostate ,违反了 BitmaskType[1] 的要求 |
删除了这些定义 |
- ↑ BitmaskType 需要支持对其自身的按位操作。按位操作支持不应由外部提供。
[编辑] 另请参见
管理任意流缓冲区 (类模板) |