C语言中%4d,%5d之类的是什么意思?

 我来答
风若远去何人留
推荐于2017-09-01 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450129
专业C/C++软件开发

向TA提问 私信TA
展开全部

这些是用于格式化输出语句中的格式化字符串。

C语言的格式化输出语句包括printf, sprintf, wsprintf, vsprintf, vprintf, fprintf等,在这类函数调用时,都会传一个格式化字符串,其中可以包含各种格式化字符。每种对应一类变量类型。

%d对应整型(int),即当格式化字符串中出现了%d时,后续的参数对应位置应为int型变量,如果不是,将会强制转换为int型。

于是%d的功能就是输出一个整型的数值。

%nd的形式,其中n为一个数字,比如%4d,%5d等,代表输出占用n个字节的空间。

当实际输出数字需要的空间大于n时,以实际空间为准。否则输出n个字节空间,不足部分用空格在左侧补齐。


比如

printf("%4d", 12);

会输出

  12

即先输出两个空格,再输出12。


而如果是printf("%4d", 12345);

由于12345占五位,超过了4的限制,所以会输出本身值12345,没有任何空格填补。

纳蝶溥衣
2020-05-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:657万
展开全部
这是printf的格式化参数,表示输出一个整型数值,输出宽度为4,且右对齐,如:
printf(
"%4d",
1
);
1
//输出1的前边有3个空格,补齐4位的宽度
printf(
"%4d",
11);
11
//输出11前边有2个空格,补齐4位的宽度
printf(
"%4d",
11111
);
11111
//因为超过了4位,所以前边没有空格
如果要左对齐,则改为
%-4d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87f7de6d28d
推荐于2018-07-01
知道答主
回答量:8
采纳率:0%
帮助的人:5.7万
展开全部
d(或i)格式符。用来输出十进制整数,有以下几种用法:
①%d,按整型数据的实际长度输出。
②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
③%ld(%mld 也可),输出长整型数据。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-17
展开全部
表示输出的有效位数不同,前者输出占4列,后者5列。未达到的数在左端补空格输出,超过列数,原样输出。比如:输出的是5,前者的样子是 5,后者的样子是 5;若输出500000,则都是输出500000
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火车上的仰望
2013-10-19 · 超过13用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:40.7万
展开全部
格式控制,指输出数据的格式,例%d是以十进制格式输出,%c是以字符形式输出。
这里的%4d,%5d都是指以十进制形式输出。中间的4和5说明输出数据的宽度,例如果输出的数据位123456,则当时%4d时,输出1234,%5d时输出12345.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式