使用cout和cin的默认格式有时并不能满足人们在输入输出时的一些特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符,控制符在头文件iomanip中定义,因此如果使用了控制符,在程序的开头除了要加iostream 头文件外,还要加iomanip头文件。常用控制符如表1-1所示。
表1-1 I/O流的常用控制符
使用C++语言提供的输出控制符控制数据按不同的格数输出。
1.控制浮点数值显示
单独使用setprecision(n)可以控制输出浮点数的数字个数,setprecision(n)与setiosflags(ios::fixed)联合使用,可以控制浮点数的小数部分的精度。不设置setprecision(n)时,系统默认浮点数输出6位有效数字。
【例1.2】分析下列输出的数据。
setprecision(n)与setiosflags(ios::scientific)联合使用,可以控制指数表示法的浮点数的精度。
【例1.3】分析下列输出的数据。
2.设置输出值的宽度
使用setw(n)控制符可以控制输出数值的宽度,当设置setw(n)中n的值小于实际数值的位数时,则按实际位数输出。
【例1.4】使用setw(n)控制符控制数值的显示位数。
(www.daowen.com)
运行结果中的下横线表示此处输出一个空格。数值12345的位数大于设置的3位宽度,所以按实际数值输出。数值11和22都小于设置的5位宽度,所以前面输出三个空格位。需要说明的是setw(n)控制符只能控制紧跟其后输出的数值。例如:
cout< <setw(5)< <11< <22< <endl;
则输出结果为:
_ _ _1122
控制符dec、hex和oct分别对应十进制、十六进制和八进制数的显示。系统默认为十进制显示。当以十六进制数显示时,可用setiosflags(ios::uppercase)控制十六进制数大写输出,用setiosflags(ios::lowercase)控制十六进制数小写输出,系统默认为小写输出。
【例1.5】使用控制符dec,hex和oct输出数据。
4.左右对齐输出
使用setiosflags(ios::left)和setiosflags(ios::right)可分别控制输出的数据左对齐和右对齐。
【例1.6】左右对齐输出数据。
5.设置填充字符
使用setw(n)设置n的值大于实际输出数据的位数时,默认情况下则在多出的位置输出空格位,可用setfill(c)控制符设置特定的符号填充空格位。
【例1.7】使用setfill(c)控制符设置填充符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。