首页 > 代码库 > 关于sprintf函数不同环境下的执行结果

关于sprintf函数不同环境下的执行结果

作者:iamlaosong

今天发现sprintf函数的一个问题,不同环境下同样语句执行结果是不一样的。一个时间字符串,要求是6位,不足6位时前面补0,用下面语句实现:

strcpy(tt,"2345");
printf("==%s==",tt);
sprintf(t1,"%06s",tt);
printf("==%s==",t1);


上述语句VC的执行结果:==2345====002345==

同样语句Linux下执行结果:==2345====  2345==

没有补0,补的是空格。实现办法是:

补1个0:sprintf(t1,"0%s",tt);

补2个0:sprintf(t1,"00%s",tt);

 

关于sprintf函数不同环境下的执行结果