C++ I/O 标志
C++为标准输入和输出定义了一些格式标志, 它可以通过flags(), setf(),
和
unsetf() 三个函数来控制. 例如,
cout.setf(ios::left);
对所有指向cout的输出进行左对齐调整.
| 标志 | 功能 |
| boolalpha | 可以使用单词"true"和"false"进行输入/输出的布尔值. |
| dec | 用十进制格式显示后面的数值. |
| fixed | 用正常的记数方法显示浮点数(与科学计数法相对应). |
| hex | 用十六进制格式显示后面的数值. |
| internal | 将填充字符回到符号和数值之间. |
| left | 输出调整为左对齐. |
| oct | 用八进制格式显示后面的数值. |
| right | 输出调整为右对齐. |
| scientific | 用科学记数法显示浮点数. |
| showbase | 输出时显示所有数值的基数. |
| showpoint | 显示小数点和额外的零,即使不需要. |
| showpos | 在非负数值前面显示"+". |
| skipws | 当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines). |
| unitbuf | 在每次插入以后,清空缓冲区. |
| uppercase | 以大写的形式显示科学记数法中的"e"和十六进制格式的"x". |
也可以通过使用下面的操作符,不直接操作标志。大多数的编程人员都都熟悉endl操作符,它给我们一个使用操作符的启示。例如:当我们设置dec标志时,
我们可以使用下面的命令:
cout << dec;
| <iostream>中定义的操作符 |
| 操作符 | 描述 | 输入 |
输出 |
| boolalpha | 启用boolalpha标志 |
X | X |
| dec | 启用dec标志 | X |
X |
| endl | 输出换行标示,并清空缓冲区 |
| X |
| ends | 输出空字符 | |
X |
| fixed | 启用fixed标志 |
| X |
| flush | 清空流 | |
X |
| hex | 启用 hex 标志 |
X | X |
| internal | 启用 internal 标志 |
| X |
| left | 启用 left 标志 |
| X |
| noboolalpha | 关闭boolalpha 标志 |
X | X |
| noshowbase | 关闭showbase
标志 | | X |
| noshowpoint | 关闭showpoint 标志 |
| X |
| noshowpos | 关闭showpos 标志 |
| X |
| noskipws | 关闭skipws 标志 |
X | |
| nounitbuf | 关闭unitbuf 标志 |
| X |
| nouppercase | 关闭uppercase 标志 |
| X |
| oct | 启用 oct 标志 |
X | X |
| right | 启用 right 标志 | |
X |
| scientific | 启用
scientific 标志 | | X |
| showbase | 启用 showbase 标志 |
| X |
| showpoint | 启用 showpoint
标志 | | X |
| showpos | 启用 showpos 标志 |
| X |
| skipws | 启用 skipws 标志 |
X | |
| unitbuf | 启用 unitbuf 标志 |
| X |
| uppercase | 启用 uppercase
标志 | | X |
| ws | 跳过所有前导空白字符 | X |
|
| 在<iomanip>中定义的操作符 |
| 操作符 | 描述 | 输入 | 输出 |
| resetiosflags( long f ) | 关闭被指定为f的标志 | X | X |
| setbase( int base ) | 设置数值的基本数为base | | X |
| setfill( int ch ) | 设置填充字符为ch | | X |
| setiosflags( long f ) | 启用指定为f的标志 | X | X |
| setprecision( int p ) | 设置数值的精度 | | X |
| setw( int w ) | 设置域宽度为w | | X |