输出如下:
#
12#24#
12被放到宽度为12个字符的字段的最右边,这被称为右对齐
。
C++永远不会截短数据,如果试图在宽度为2的字段中打印一个7位值,C++将增宽字段,以容纳该数据。
3. 填充字符
默认情况下,cout用空格填充字段中未被使用的部分。
可以用fill()
成员函数来改变填充字符。例如:
cout.fill('*');
将填充字符改为星号。
新的填充字符将一直有效,直到更改它为止。
4. 设置浮点数的显示精度
浮点数精度的含义取决于输出模式。
默认模式下,它指的是显示的总位数。
在定点模式和科学模式下,精度指的是小数点后面的位数。
默认精度为6位,不过末尾的0将不显示。
precision()
成员函数能设置其他值。例如:
cout.precision(2);
将cout的精度设置为2。
新的精度设置将一直有效,直到被重新设置。
5. setf()
ios_base类提供了一个setf()函数(用于set标记),能够控制多种格式化特性。
seft()函数有两个原型。第一个为:
fmtflags setf (fmtflags);
fmtflags是bitmask类型的typedef名,用于存储格式标记。
bitmask类型是一种用来存储各个位值的类型。它可以是整形、枚举,也可以是STL bitset容器。其中的每一位都可以单独访问,都有自己的含义。
这个版本的setf()用来设置单个位控制的格式信息。返回值是标记以前的设置。
ios_base类定义了代表位值的常量,下图列出了其中的一些定义。

使用它们时,必须加上作用域解析操作符。例如,ios_base::uppercase 。
修改将一直有效,直到被覆盖为止。
seft()函数第二个原型接受两个参数,并返回以前的设置:
fmtflags setf (fmtflags, fmtflags);
这种重载格式用于设置由多位控制的格式选项。
第一个参数和前面一样,是一个包含了所需设置的fmtflags值,。
第二个参数指出要清除第一个参数中的哪些位。
举例说明,将第3位设置为1表示以10为基数,将第4位设置为1表示以8为基数,将第5位设置为1表示以16为基数。假设现在是以10为基数,而要将它设置为以16为基数,则不仅需要将第5位设置为1,还需要将第3位设置为0。这叫作清除位(clearing the bit)
。
ios_base类为此定义了常量。

定点表示法意味着使用格式123.4来表示浮点值,而不管数字的长度如何。
科学表示法则意味着使用格式1.23e04,而不考虑数字的长度。
定点表示法和科学表示法都有下面的两个特征:
精度指的是小数点位数,而不是总位数。
显示末尾的0。
可以声明一个fmtflags类型的值,来保存cout的默认格式,以备以后恢复:
ios_base::fmtflags old = cout.setf(fmtflags);
cout.setf(old);
6. unsetf()
unsetf()成员函数用来消除调用setf()设置的效果。原型如下:
void unsetf(fmtflags mask);
mask是位模式,其中所有的位都设置为1,将使得对应的位被复位。也就是说,setf()将位设置为1,unsetf()将位恢复为0。例如:
cout.setf(ios_base::showpoint); // show trailing decimal point
cout.unsetf(ios_base::boolalpha); // don't show trailing decimal point
cout.setf(ios_base::boolalpha); // display true,false
cout.unsetf(ios_base::boolalpha);
// display 1,0
没有专门指示浮点数默认显示模式的标记。仅当只有定点位被设置时使用定点表示法;仅当只有科学位被设置时使用科学表示法;对于其他组合,如没有位被设置或两位都被设置时,将使用默认模式。
启用默认模式的方法之一:
cout.setf(0, ios_base::floatfield);
// go to default mode
第二个参数关闭这两位,第一个参数不设置任何位。
启用默认模式的方法之二:
cout.unsetf(ios_base::floatfield);
如果已知cout出于定点状态,则可以使用参数ios_base::fixed调用函数unsetf()来切换到默认模式。但无论cout当前状态如何,使用参数ios_base::floatfield调用函数unsetf()都将切换到默认模式。
7. 标准控制符
C++提供了多个控制符,能够调用setf(),并自动提供正确的参数。这些控制符的工作方式就像前面介绍过的dex、hex和oct一样。
下图列出了这些控制符以及其他一些控制符。

本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-7296-2.html
)这讲的是人话
下面腹黑