C++中输入输出时如何控制域宽?

比如C中的%2d... 比如C中的%2d 展开
 我来答
松甜恬0Je4ba
推荐于2017-05-20 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3443万
展开全部
看看下面的这个例子:使用 setw(2) 这样的控制域宽。

#include <iostream>
#include <iomanip>
usingnamespace std;
void main()
{
int x=1000;
double y=1.23456789;
cout<<"默认x值:"<<x<<endl;
cout<<"十进制:"<<dec<<x<<endl; //dec oct hex 会一直作用。
cout<<"八进制:"<<oct<<x<<endl;
cout<<"十六进制:"<<hex<<x<<endl;
cout<<"十六进制(大写字母):"<<hex<<uppercase<<x<<endl<<endl;
cout<<"默认y值(左对齐且有效数字位数为6):"<<y<<endl;
cout<<"宽度为10并右对齐:"<<setw(10)<<right<<y<<endl;
cout<<"宽度为8:"<<setw(8)<<y<<endl;
cout<<"宽度为4:"<<setw(4)<<y<<endl;
cout<<"用*号填充空位(10位宽度):"<<setfill('*')<<setw(10)<<y<<endl; //setw(int i) 只对紧随的数据显示有影响。控制多个数据要多个setw()method.
cout<<"设精度为3输出y(不包括小数点):"<<setprecision(3)<<y<<endl; //setprecision(int i) 会一直作用
cout<<"设精度为8输出y(不包括小数点):"<<setprecision(8)<<y<<endl;
cout<<"显示正负号:"<<showpos<<y<<endl;
cout<<"用科学计数法表示y:"<<scientific<<y<<endl;
cout<<"用科学计数法表示y(控制E前数据的小数点后位数):"<<scientific
<<setprecision(3)<<y<<endl;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-20
展开全部
%后面+数字就行了.
如:
int a;
a=5;
printf("%10d",a);

浮点数加2个数用"."分开
如:
float a;
a=5.2;
printf("%10.2f",a);
就是域宽10,2位小数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式