Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

13.7 操纵符

操纵符是可以在 iostream 中插入或提取以产生特殊效果的值。

参数化操纵符是具有一个或多个参数的操纵符。

因为操纵符是普通的标识符,因此会用完可能的名称,而 iostream 不会为每个可能的函数定义操纵符。本章的其他部分讨论了各种操纵符和成员函数。

下表中介绍了 13 个预定义的操纵符。此表假定以下事项属实:

  • i 的类型为 long

  • n 的类型为 int

  • c 的类型为 char

  • istr 是输入流。

  • ostr 是输出流。

表 13-2  iostream 的预定义操纵符
预定义操纵符
说明
1
ostr << dec, istr >> dec
以 10 为基数进行整数转换。
2
ostr << endl
插入一个换行符 (’\n’) 并调用 ostream::flush()
3
ostr << ends
插入一个空 (0) 字符。这在处理 strstream 时很有用。
4
ostr << flush
调用 ostream::flush()
5
ostr << hex, istr >> hex
以 16 为基数进行整数转换。
6
ostr << oct, istr >> oct
以 8 为基数进行整数转换。
7
istr >> ws
提取空白字符(跳过空白),直至找到非空白字符(留在 istr 中)。
8
ostr << setbase(n), istr >> setbase(n)
将转换基数设置为 n(仅限 0、8、10、16)。
9
ostr << setw(n), istr >> setw(n)
调用 ios::width(n)。将字段宽度设置为 n。
10
ostr << resetiosflags(i), istr>> resetiosflags(i)
根据 i 中设置的位,清除标志位向量。
11
ostr << setiosflags(i), istr >> setiosflags(i)
根据 i 中设置的位,设置标志位向量。
12
ostr << setfill(c), istr >> setfill(c)
将填充字符(用来填充字段)设置为 c
13
ostr << setprecision(n), istr >> setprecision(n)
将浮点精度设置为 n 位数。

要使用预定义的操纵符,必须在程序中包含文件 iomanip.h

您可以定义自己的操纵符。操纵符的两个基本类型为:

  • 无格式操纵符 – 采用 istream&ostream&ios& 参数,对流进行操作,然后返回其参数。

  • 参数化操纵符 – 采用 istream&ostream&ios& 参数以及一个附加参数,对流进行操作,然后返回其流参数。