sprintf和printf输出位数不够前边补零的技巧
sprintf 和printf 转换时往往需要输出格式保持一致,比如转换mac地址和ip地址时需要将0显示出来并对齐。
-
int a = 4;
- printf("%03d",a);
输出:004
也可以用 * 代替位数,在后面的参数列表中用变量控制输出位数;
-
int a = 4;
-
int n = 3;
- printf("%0*d",n,a);
输出:004
#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned char tempbuf[32];
unsigned char tempbuf1[32];
unsigned char i,j;
i = 0x02;
sprintf(tempbuf,"%02X",i);
printf("%s\n",tempbuf);
j=0x3f;
sprintf(tempbuf1,"%02X",j);
printf("%s\n",tempbuf1);
}
输出结果:
02
3F