今天在学习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了。