1. 操纵算子
这里已经添加了一个新的元素:一个称作 e n d l的操纵算子。一个操纵算子作用于流上,这
种情况下,插入一新行并清空流(消除所有存储在内部流缓冲区里的还没有输出的字符) 。也
可以只清空流:
c o u t < < f l u s h;
另外有一个基本的操纵算子把基数变为o c t (八进制),d e c (十进制)或h e x (十六进制):
c o u t < < h e x < < " 0 x " < < i < < e n d l;
有一个用于提取的操纵算子“跳过”空格:
c i n > > w s;
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 |