setfill控制符有保留效力吗?
编译器不同会对结果产生细微差异,但是具体到这个函数应该不会
所谓域宽,就是输出的内容(数值或字符等等)需要占据多少个字符的位置,如果位置有空余则会自动补足。比如我们要设置域宽为2,那么当输出一位数1的时候输出的就是“ 1”,即在1前面加了一个空格。空格和数字1正好一共占用了两个字符的位置。
设置域宽和填充字符的时候要注意几点:
①设置域宽的时候应该填入整数,设置填充字符的时候应该填入字符。
②我们可以对一个要输出的内容同时设置域宽和 填充字符,但是设置好的属性仅对下一个输出的内容有效,之后的输出要再次设置。即 cout <<setw(2) <<a <<b;语句中域宽设置仅对a有效,对b无效。
③setw和setfill 被称为输出控制符,使用时需要在程序开头写上#include "iomanip.h",否则无法使用。
如果不改变setfill的字符,即只设置一次,在当前程序执行过程中有效
是的,具有保留效率。他和setw()函数配套,setw()函数是设置域宽,setfill()是填充字符,设置域宽是以空格的形式输出,填充字符是以字符的形式输出。
setfill设置的是填充字符,它默认是空格,你设置成星号之后它就变成了星号,之后你执行填充就都填充的是星号
你所谓的保留效力指什么?
这效力只对当前进程有效,你关了重新打开如果不执行setfill,那么填充字符还是空格