Chinaunix

标题: linux下sprintf的问题! [打印本页]

作者: floating    时间: 2004-02-27 19:53
标题: linux下sprintf的问题!
如下
char ptmp[12];
char ptmp2[10];

strcpy(ptmp2, "1234";
sprintf(ptmp, "%08s", ptmp2);

printf("ptmp:[%s]\n", ptmp);

结果输出[    1234],目的是输出[00001234],为什么这样,高手请教!
作者: kj501    时间: 2004-02-27 19:59
标题: linux下sprintf的问题!
你把sprintf(ptmp, "%08s", ptmp2); 中的"%08s"改成"%s"不就输出[1234]了吗?
作者: floating    时间: 2004-02-27 20:01
标题: linux下sprintf的问题!
我是想在前面补零输出[00001234],在sco下是ok的,在redhat9上就变成这样了。呵呵
作者: kj501    时间: 2004-02-27 20:26
标题: linux下sprintf的问题!
sorry,没有搞清楚你的意思。
这种做法可能在linux上是行不通的。你打印的是字符串,如果是数字,是可以用这种方法对齐的,但对字符则不管用。
作者: win_hate    时间: 2004-02-28 00:06
标题: linux下sprintf的问题!
[quote]原帖由 "floating"]],在sco下是ok的,在redhat9上就变成这样了。呵呵[/quote 发表:


sprintf(ptmp, "%08d", atoi(ptmp2));
作者: floating    时间: 2004-02-28 11:22
标题: linux下sprintf的问题!
好像只能这样了,谢谢各位!
作者: w25    时间: 2004-02-29 17:44
标题: linux下sprintf的问题!
printf("ptmp:[0000%s]\n", ptmp);

only a joke




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2