setw()函数以及setfill()函数用法

setw()函数仅对<<后的输出数据有效

setfill()函数则是跟在setw后面填充相应的空位(默认是空格)

1)

例如:

#include <iostream>
using namespace std;
#include <iomanip>
int n;
extern void display();
int main()
{
	cout <<123<< setw(15) << setfill('#') << 123;      

	system("pause");
}

  运行结果为:123############123

即用#填充位数加上后面的数字组成15位。可以理解为, 输出格式为 三部分组成:setw(),setfill(),xx||"xx"。

*注:setfill("#”)跟上setw()函数#才有输出结果。且setw()只能一次有效,setfill则永久有效,直到遇到下一个setfill();

例:

       将上面输出语句改为:

       cout <<setfill("*")<< 123 << setw(15) << setfill('#') << 123 << setw(10) << 456;

运行结果为:123############123#######456     此时并没有*输出。

扫描二维码关注公众号,回复: 5888802 查看本文章

2)

cout << setw(10) << setfill('#') <<left<< 123 << endl;

运行结果为:123#######   (个人理解,输出左对齐123的优先级高于输出填充部分,当然这只是相对于只有一行用于对齐的代码)

若改为

cout << setw(10) << setfill('#') <<right<< 123 << endl;

则结果为:#######123      

猜你喜欢

转载自blog.csdn.net/kfc33832168/article/details/89221967