printf输出时字段宽度的设定方法

本文通过一个C++代码示例解释了printf函数中字段宽度和对齐控制的使用,包括%d、%2d、%9d和%-9d等格式说明符的输出效果。示例展示了如何利用这些控制来格式化输出横式和竖式运算式子,以达到指定的宽度和对齐要求。

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

让我们通过一个小例子进行理解,看看字段宽度在输出时的效果

#include <bits/stdc++.h>
using namespace std;

#define lz 683

int main(void)
{
    printf("*%d*\n",lz);
    printf("*%2d*\n",lz);
    printf("*%9d*\n",lz);
    printf("*%-9d*\n",lz);
}
//输出如下:
*683*
*683*
*      683*
*683      *

第1个转换说明%d不带任何修饰符,其对应的输出结果与带整数字段宽度的转换说明的输出结果相同。在默认情况下,没有任何修饰符的转换说明,就是这样的打印结果。

第2个转换说明是%2d,其对应的输出结果应该是2字段宽度。因为待打印的整数有3位数字,所以字段宽度自动扩大以符合整数的长度。

第3个转换说明是%9d,其对应的输出结果有9个空格宽度,实际上在两个星号之间有6个空格和3位数字,并且数字位于字段的右侧。

最后一个转换说明是%-9d,其对应的输出结果同样是9个空格宽度,- 标记说明打印的数字位于字段的左侧。

熟悉它们的用法后,我们就能很好地控制输出格式。

例题如下:
链接:https://ac.nowcoder.com/acm/problem/22007
来源:牛客网

题目描述
牛牛渐入佳境,他准备做一个加法模拟器来玩玩,输入两个数,分别打印这两个数的横式和竖式运算式子。

输入描述:
输入两个整数a, b 以空格隔开
0 <= a, b <= 1000

输出描述:
第一行打印横式运算式子,接下来四行打印竖式运算式子

示例1
输入

45 237

输出

45+237=282
     45
+   237
-------
    282

备注:
注意printf的时候使用%xd来进行右对齐 ,x是一个数字(x未知)

#include<bits/stdc++.h>
using namespace std;

int main(void)
{
    int a, b, c;
    cin>>a>>b;
    c=a+b;
    cout<<a<<"+"<<b<<"="<<c<<endl;
    printf("%7d\n+%6d\n-------\n%7d",a,b,c);//格式控制符控制数据宽度,数值型数据默认右对齐,左补空格
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值