多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一.布尔值格式化 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `boolalpha` |后续所有流操作| 布尔值输出为 `true/false` 而不是 `1/0` | | `noboolalpha` (默认格式) |后续所有流操作| 布尔值输出为 `1/0` 而不是 `true/false` | ## 二.整型格式化 1. 修改整型进制 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `dec` (默认格式) |后续所有流操作| 整型数据按照十进制输出,其余数据不影响 | | `oct` |后续所有流操作| 整型数据按照八进制输出,其余数据不影响 | | `hex` |后续所有流操作| 整型数据按照十六进制输出,其余数据不影响 | | 函数 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `ostream &setbase(int)` | 后续所有流操作 | 修改进制 | 2. 修改整型前导符输出显示 + 前导 `0` 表示八进制 + 前导 `0x` 表示十六进制 + 无前导符表示十进制 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `showbase` |后续所有流操作| 整数输出前导符 | | `noshowbase` (默认格式) |后续所有流操作| 整数不输出前导符 | | `uppercase` |后续所有流操作| 十六进制数据大写 | | `nouppercase` (默认格式) |后续所有流操作| 十六进制数据小写 | ## 三.浮点型格式化 1. 获取/设置精度 | 函数 |作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `int obj.precision()` |后续所有流操作| 返回当前的精度值 | | `void obj.precision(int)` |后续所有流操作| 设置当前的精度值 | | `ostream &setprecision(int)` |后续所有流操作| 设置当前的精度值 | 2. 小数点的显示 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `showpoint` |后续所有流操作| 浮点数没有小数部分,仍然输出小数点 | | `noshowpoint` (默认格式) |后续所有流操作| 浮点数没有小数部分,不输出小数点 | 3. 浮点数计数法 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `fixed` (默认格式) |后续所有流操作| 浮点数按照小数点的格式输出 | | `scientific` |后续所有流操作| 浮点数按照科学计数法的格式输出 | | `uppercase` |后续所有流操作| 浮点数按照科学计数法的格式输出时,`e`大写 | | `nouppercase` (默认格式) |后续所有流操作| 浮点数按照科学计数法的格式输出时,`e`小写 | | [11+]`hexfloat` |后续所有流操作| 浮点数按照十六进制输出 | | [11+]`defaultfloat` (默认格式) |后续所有流操作| 浮点数按照十进制输出 | ## 四.对齐 1. 设置输入宽度 | 函数 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `ostream &setw(int)` | **仅下一个数字或字符串** | 设置数字和字符串输出的最小空间,默认为 `0` | | `obj.width(int)` | 后续所有流操作 | 设置数字和字符串输出的最小空间,默认为 `0` | 2. 对齐 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `left` |后续所有流操作| 左对齐 | | `right` (默认格式) |后续所有流操作| 右对齐 | | `internal` |后续所有流操作| 对于数字,符号在左边,数字在右边,中间默认用空格填充 | 3. 填充 | 函数 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `ostream &setfill(char)` | 后续所有流操作 | 用指定字符代替空格进行填充 | | `obj.fill(char)` | 后续所有流操作 | 用指定字符代替空格进行填充 | ## 五.读取空白格 | 操纵符 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `noskipws` |后续所有流操作| 输入时,将空白格读入变量,而不是跳过他们 | | `skipws` (默认格式) |后续所有流操作| 输入时,跳过空白格 | ## 六.缓冲区操作 1. 刷新缓冲区 | 操纵符 |作用范围 | 含义 | | ------- | ---------------------- |---------------------- | | `endl` |一次性操作| 输出换行,并刷新缓冲区 | | `flush` |一次性操作| 刷新缓冲区 | | `ends` |一次性操作| 输出空格,并刷新缓冲区 | 2. 修改缓冲设置 | 操纵符 |作用范围 | 含义 | | ----------- | -------------------------------- | -------------------------------- | | `unitbuf` |后续所有流操作| 所有输出操作后都会立即刷新缓冲区 | | `nounitbuf` |后续所有流操作| 回到正常的缓冲方式 | ## 七.流关联 使用流对象的 `tie` 函数将另一个流的地址与其关联。 ```c++ cin.tie(NULL);//取消绑定流 cin.tie(&cout);//绑定输出流 ``` ## 八.格式管理 1. 批量设置格式 | 函数 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `ostream &setiosflags(flags)` | 后续所有流操作 | 设置格式,上面的格式需要加上 `ios::` 作用域,多个格式中间用 `|` 隔开 | | `obj.setf(flags)` | 后续所有流操作 | 设置格式,上面的格式需要加上 `ios::` 作用域,多个格式中间用 `|` 隔开 | 2. 批量清除格式 | 函数 | 作用范围 | 含义 | | ------- | ---------------------- | ---------------------- | | `ostream &resetiosflags(flags)` | 后续所有流操作 | 清除格式,格式需要加上 `ios::` 作用域,多个格式中间用 `|` 隔开 | | `obj.usetf(flags)` | 后续所有流操作 | 反设置格式,格式需要加上 `ios::` 作用域,多个格式中间用 `|` 隔开 | 额外的可批量清理的格式: | 操纵符(已加上 `ios::` 作用域) |作用范围 | 含义 | | ----------- | -------------------------------- | -------------------------------- | | `ios::basefield` |后续所有流操作| 整数进制,包含 `dec` `oct` `hex` | | `ios::adjustfield` |后续所有流操作| 对齐方式,包含`left` `right` `internal` | | `ios::floatfield` |后续所有流操作| 浮点输出方式,包含`fixed` `scientific` |