C++中的setw()函数

今天在学习C++中碰到一个setw()函数,不知道是什么意思,上网查阅资料得知:

setw(int n)函数是C++中在输出操作中使用的字段宽度设置,此函数的作用是:设置输出的域宽,n表示字段宽度。它只对紧接着的输出有效紧接着的输出结束后又变回默认的域宽。当后面紧跟着的输出字段长度小于n的时候,在该字段前面用空格补齐;当输出字段长度大于n时,全部整体输出。

setw(int n)函数包含在头文件为#include <iomanip>中,其中io代表输入输出,manip是manipulator(操纵器)的缩写iomanip的作用:主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。代码如下:

#include <iostream>
using namespace std;

#include <iomanip>
using std::setw;

int main()
{
    cout << 123456789 << endl;
    cout << setw(4) << 123 << setw(7) << 456789 << endl;
    return 0;
}

运行代码,结果如下: 

 

如果我们上面的代码稍作修改,

cout << setw(4) << 123 << setw(7) << 456789 << endl;

改为:

cout << setw(4) << 123 << setw(3) << 456789 << endl;

修改后的代码如下:

#include <iostream>
using namespace std;

#include <iomanip>
using std::setw;

int main()
{
    cout << 123456789 << endl;
    cout << setw(4) << 123 << setw(3) << 456789 << endl;
    return 0;
}

再次运行代码,结果如下:

 

我们发现,123我们设置的长度为4,123本身长度为3,所以在123之前补一个空格来填满长度4.之后的456789本身长度是6,设置的长度为3,所以只要把456789本身全部输出就OK了。 

猜你喜欢

转载自blog.csdn.net/weixin_40379143/article/details/107999889