printf 与 cout 输出格式的简单比较

本文对比了C语言中printf和C++中的cout在输出格式上的差异,包括控制整形宽度、小数精度以及特殊格式等方面,详细阐述了各自在宽度、精度设定上的规则和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 printf的输出格式

1、控制整形宽度

以整型为例:

printf("%md", a);此处m为输出地宽度,默认为右对齐,左边填充空格;若a的实际长度大于m,则m失效。若改为printf("%0md", a);则左边填充0。

改为左对齐:printf("%-md", a), 默认右边填充空格。

2、控制小数精度:

以单精度为例:

printf("%.mf", a); 此处m为小数点后保留m位,若a的实际长度大于m,则把多出的部分四舍五入,不足则补零。

还有一种表示方式:printf("%n.mf", a); n为宽度,m为精度。

3、特殊格式:

pritnf("%*.*d", m, n, a);之所以说特殊,是因为你可以参数m和n对宽度和精度进行控制,或者说上面的两种情况是它的特殊形式。pritnf("%*d", m, a);和pritnf("%.*d", m, a);分别对应上面的2种形式。

 

二、cout的输出格式

cout有两种方式:可以用iomanip库中的函数,也可以不用,为了不让大家迷惑,现分开叙述。

1、不用iomanip

1).控制宽度

cout.width(m),m控制输出地宽度,默认右对齐,即cout.setf(ios::right),若想给位右对齐,则加上cout.setf(ios::left), 注意:cout.width(m)为一次性的,即用过一次后就失效了,而cout.setf(ios::right)不会,可用cout.unsetf(ios::right)取消。

2).控制精度

cout.precision(m),m为小数点的位数。注意:不足补充空格,与printf不同!!!

2、使用iomanip

1).控制宽度

cout<<setw(m)<<a<<endl;m为宽度,默认为右对齐,若改为左对齐,为cout<<setiosflags(ios::left)<<setw(m) <<a<<endl,设置宽度用过后不会失效,可用cout<<resetiosflags(ios::left);取消。

2).控制精度

setprecision(n), n为浮点数的数字个数,即有效数字。setiosflags(ios::fixed)用定点方式表示实数,两者合用可控制精度, 即cout<<setiosflags(ios::fixed)<<setprecision(m)<<a; m即为小数点的位数。注意:他们用过以后不会失效,可以用 cout<<resetiosflags(ios::fixed)取消。

 

限于能力有限,先写到此,以后还会补充。如有错误,请不吝赐教。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值