printf的填充符 占位符

字符对应数据类型含义
d / iint接受整数值并将它表示为有符号的十进制整数,i是老式写法
ounsigned int无符号8进制整数(不输出前缀0)
u
unsigned int无符号10进制整数
x / X
unsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
f(lf)
float(double)单精度浮点数用f,双精度浮点数用lf(尤其scanf不能混用)
e / E
double科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
g / G
double使用以上两种中最短的形式,大小写的使用同%e和%E
c
char字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
s / S
char * / wchar_t *字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
p
void *以16进制形式输出指针
nint *到此字符之前为止,一共输出的字符个数,不输出文本
%
无输入不进行转换,输出字符‘%’(百分号)本身
注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。

flags

flags 规定输出样式,取值和含义如下:
字符
字符名称说明
-减号左对齐,右边填充空格(默认右对齐)
+
加号在数字前增加符号 + 或 -
0
数字零将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”)
 空格输出值为正时加上空格,为负时加上负号
#
井号
type是o、x、X时,增加前缀0、0x、0X
type是e、E、f、g、G时,一定使用小数点
type是g、G时,尾部的0保留

 

但是有时候我们需要表示一个时间,如12:00:12;

但是如果我们用%2d的话,就会变成12:0:12,那怎么办呢?

怎么默认用0填充?答案是%02d,简单吧。

转载于:https://my.oschina.net/u/264056/blog/384952

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值