C++中setw()是什么意思?
例如:
cout<<'s'<<setw(8)<<'a'<<endl;
则在屏幕显示
s a
//s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。
setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。
如
cout<<setfill('*')<<setw(5)<<'a'<<endl;
则输出:
****a //4个*和字符a共占5个位置。
setw(int n)只是对直接跟在<<后的输出数据起作用,而在之后的<<需要在之前再一次使用setw;(Sets the number of characters to be used as the field width for the next insertion operation.)
n是在输出时分配了n个字符的输出宽度,然后默认的是在n个字符宽度中右对齐输出,可以使用setiosflags(iOS::left)设置为左对齐输出,可以使用setfill('char x')使用x来填充空下的空格;示例如下。(同学推荐了一个不错的网站,cplusplus.com在其中直接搜索iomanip之后就可以查到在这个头文件中包含的所有成员函数)
#include <iostream>
#include <iomanip>
using namespace std;
void main(){
cout << setw(10) << setiosflags(ios::left) <<setfill('*') << 10 << endl;
cout << setw(10) << setiosflags(ios::right) <<setfill('*') << 10 << endl;
cout << setw(10) << setfill('*') << 10 << endl;
//使用以下这种形式来调用显得更加整齐并简洁
int a=10;
int b=20;
cout.setf(ios::right,ios::adjustfield);
cout.fill('0');
cout << setw(5) << a <<endl;
cout << setw(5) << b << endl;
}
输出结果可以证实i奥数的正确性。
2011-12-26
for example
cout<<setw(7)<<54421<<set(4)<<356<<endl;
结果:
(两个空格)54421(一个空格)356
为了您的安全,请只打开来源可靠的网址
打开网站 取消
来自: http://hi.baidu.com/hxk622/blog/item/6f552c00ed84dd024bfb5184.html
例如:
cout<<'s'<<setw(8)<<'a'<<endl;
则在屏幕显示
s a
//s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实际长度输出。
setw()默认填充的内容为空格,可以setfill()配合使用设置其他字符填充。