1.setw(int n)函数
- (1)函数原型声明:setw(int n);
整形形参代表所需要输出的字段宽度,用户可以根据需要自行设置字段宽度,如:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout<<setw(8)<<123<<endl;
cout<<setw(8)<<"welcome to csdn"<<endl;
return 0;
}
从运行结果可以看出,位于setw( int n)函数后面的输出字段的宽度不足n时,该函数将自动在输出字段的前面填充空格用于补足n个字段宽度,即默认的对齐方式是右对齐,默认的填充字符是空格,当位于setw()函数后面的输出字段的宽度超过n时将原样输出,不做任何改变。
值得一提的是,setw()函数只对紧跟在其后的输出有用,所以起作用不是更改输出字段的默认宽度。如:
cout << setw(8) << setfill(' ')<<123 <<456<<endl;
- (2)setfill(char c)函数
setw()函数的默认填充字符是空格,当我们想要用其它字符来填充时,就可以使用setfill()函数来设置填充的字符,如:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout << setw(8) << 123 << endl;
cout << setw(8) << "welcome to csdn" << endl;
cout << setw(8) <<setfill('+')<< 123 << endl;
cout << setw(8) << 123 << endl;
return 0;
}
值得注意的是使用setfill(char c)函数改变默认的填充字符之后,从它设置的地方开始将一直有效,直到遇见下一个setfill()函数改变默认的填充字符为止,即在遇到下一个setfill()函数之前,所有输出语句默认的填充字符都是c。所以setfill()函数的作用是设置默认的填充字符
- 控制对齐方式的left和right
有时候我们不仅希望改变输出字段的宽度以及填充方式还希望改变输出字段的对齐方式,所以此时需要用到left和right,left设置对齐方式为左对齐,right设置对齐方式为右对齐,值得注意的是和setfill()一样,left/right从设置时开始将一直有效,即以后遇到的输出语句都是为左对齐/右对齐,直到遇到下一个right/left,将其更改为右对齐/左对齐为止;
cout << setw(8)<<left << 123 << endl;
cout << setw(8)<< 123 << endl;
cout << setw(8) << right << 123 << endl;
- 总结
使用setw()函数和setfill()函数时需要包含头文件iomanip
函数setfill(),setw(),配合使用,与C语言的格式控制符类似,在c++语言中 用于控制输出格式即控制输出的字段的宽度,right,left用于控制输出字段的对齐方式默认是右对齐的,即输出的字段位于右侧而填充的字符位于左侧,如果想要输出字段是右对齐的加上right即可,setfill(char c),left/right从设置时开始将一直有效,即以后遇到的输出语句都是为左对齐/右对齐且以字符c作为填充字符,直到遇到下一个right/left,setfill()将其更改为右对齐/左对齐和更改默认填充字符为止。