2.2.2 输出格式控制
输出数据时,对不同的数据类型往往有不同的格式要求,比如小数的精度、输出数字的宽度等,需要对输出流的格式进行控制以满足我们的要求。
为了控制输出流格式,C++(www.cppentry.com)提供了很多操纵符。这些操纵符可以直接插入输出流中以控制输出格式,它们都定义在头文件iomanip中,使用这些操纵符,需要先使用预编译指令#include引入这个头文件。表2-1列出了C++(www.cppentry.com)中常用的格式操纵符。
表2-1 常用的输出流格式操纵符
|
操纵符< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
作 用 |
|
dec |
采用十进制表示数值数据 |
|
hex |
采用十六进制表示数值数据 |
|
oct |
采用八进制表示数值数据 |
|
endl |
插入换行符,并刷新流 |
|
setprecision(int) |
设置浮点数的精度,精度是浮点数中
所有包括小数点前后的十进制数字的个数 |
|
setw(int) |
设置输出流中两个数据显示的间隔宽度 |
|
setiosflags() |
输出流的默认对齐方式为文本右对
齐,程序中可以用setiosflags和
resetiosflags操纵符重设对齐方式 |
例如,要求显示浮点数1.23456小数点后两位有效数字,然后换行,可以用如下的语句:
- cout<<fixed<<setprecision(2)<<1.23456<<endl;
首先向cout对象插入一个fixed操纵符,让它以普通的小数计数法输出,否则它将以科学计数法输出浮点数;然后,通过setprecision()设置需要保留的有效数字位数,这样就可以达到对输出格式的要求了。
有时候我们还需要对字符串的格式进行控制,从而让程序的输出更加美观。可以在字符串中加入一些用于格式控制的转义字符。常用的格式控制转义字符有:"\n"表示换行;"\t"表示间隔一个Tab的距离等。例如,下面的代码实现了换行显示:
- cout<<"分多行\n显示一个字符串"<<endl;
程序执行后,将在屏幕上看到"\n"将一个字符串分成了两行显示:
- 分多行
- 显示一个字符串
综合使用C++(www.cppentry.com)语言所提供的这些输出流操纵符和格式定义转义字符,可以实现丰富的自定义格式化输出,满足对输出格式的各种要求。