14.4.8 填充字符
从代码14.11可以看出,C++默认用空格填充显示时不足域宽的部分,ios_base类还提供了成员函数fill以指定其他的填充符,其格式如下所示。
char ios_base:fill();//返回当前填充符 char ios_base:fill(char ch);//将ch作为新的填充符,并返回原来的填充符
width函数与指定域宽“一次有效”不同的是,新的填充字符将一直有效,采用fill函数指定新的填充字符,如示例代码14.12所示。
代码14.12 使用fill函数指定填充字符FillSample
<——————————-文件名:example1412.cpp————————————————-> 01 #include<iostream> 02 using namespace std; 03 int main() 04 { 05 cout. fill('$');//指定$为填充字符 06 cout. width(20);//域宽20 07 cout. setf(ios_base:left,ios_base:adjustfield);//设置左对齐 08 cout<<"Hello"<<endl; 09 return 0; 10 }
输出结果如下所示。
Hello$$$$$$$$$$$$$$$
【代码解析】代码第5行将填充符指定为$,同时第7行的语句“cout.setf(ios_base:left,ios_base:adjustfield);”将对齐方式指定为左对齐,因此,输出时在字符串Hello后补足了15个$以满足域宽的要求。