注册 登录
编程论坛 C++教室

有一个输出的小问题,setw(int )如果我里面的参数是个double 型的改如何设置?

jiushiwo 发布于 2007-06-20 13:13, 1097 次点击
void print()
{
cout<<setw(10)<<name<<setw(6)<<age<<setw(10.2)<<salary<<setw(8)<<sex<<endl;;
//cout<<name<<age<<salary<<sex<<endl;
}
就是stew(10.2)里的参数是double型的,要如何才能表示10.2呢
6 回复
#2
ioriliao2007-06-20 13:20

你问的是什么呢,你要的是不是这样的?

[CODE]#include <iostream>
using namespace std;
void print(double);
int main()
{
print(10.2);
cin.get();
return 0;
}
void print(double x)
{
cout << "x= " << x << endl;
}[/CODE]

#3
wfpb2007-06-20 13:35
setw( int nw );
LZ知道函数的意义吗?知道就不会问10.2作为参数了。。。
#4
aipb20072007-06-20 14:38
估计他是不知道哦!

#include <iostream>
#include <iomanip>
using namespace std;

int main(){
const double d = 1.23456;
cout << setw(10) << d << endl;
}

看看输出,1.23456 前空出4位
#5
jiushiwo2007-06-20 16:10
我知道setw(int )里要用整型,我要把 printf("%10s%6d%10.2f%8s\n",name,age,salary,sex)
转换为setw()的表示方式,cout<<setw(10)<<name<<setw(6)<<age<<setw(10.2)<<salary<<setw(8)<<sex<<endl;
但是我不懂怎么表示那10.2f
所以来问下你们啊

#6
wfpb2007-06-20 19:46
cout&lt;&lt;fixed&lt;&lt;setprecision(2)&lt;&lt;setw(10)&lt;&lt;salary&lt;&lt;endl;
#7
野比2007-06-20 20:58
小数精度用setprecision()...
setw()是设置域宽,和小数无关...
要改变前面填充用setfill()
1