sprintf和printf输出位数不够前边补零的技巧

 sprintf 和printf 转换时往往需要输出格式保持一致,比如转换mac地址和ip地址时需要将0显示出来并对齐。

  1. int a = 4;
  2. printf("%03d",a);

输出:004

也可以用 * 代替位数,在后面的参数列表中用变量控制输出位数;

  1. int a = 4;
  2. int n = 3;
  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



sitemap