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 |