13.7 操纵符
操纵符是可以在 iostream 中插入或提取以产生特殊效果的值。
参数化操纵符是具有一个或多个参数的操纵符。
因为操纵符是普通的标识符,因此会用完可能的名称,而 iostream 不会为每个可能的函数定义操纵符。本章的其他部分讨论了各种操纵符和成员函数。
下表中介绍了 13 个预定义的操纵符。此表假定以下事项属实:
i 的类型为 long。
n 的类型为 int。
c 的类型为 char。
istr 是输入流。
ostr 是输出流。
表 13-2 iostream 的预定义操纵符 | | |
1
| ostr << dec, istr >> dec
|
|
2
| ostr << endl
| 插入一个换行符 ( ’\n’) 并调用 ostream::flush()。
|
3
| ostr << ends
| 插入一个空 (0) 字符。这在处理 strstream 时很有用。
|
4
| ostr << flush
|
|
5
| ostr << hex, istr >> hex
|
|
6
| ostr << oct, istr >> oct
|
|
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)
|
|
11
| ostr << setiosflags(i), istr >> setiosflags(i)
|
|
12
| ostr << setfill(c), istr >> setfill(c)
|
|
13
| ostr << setprecision(n), istr >> setprecision(n)
|
|
|
要使用预定义的操纵符,必须在程序中包含文件 iomanip.h。
您可以定义自己的操纵符。操纵符的两个基本类型为: