标题:菜鸟请教一个关于格式化输出的问题
取消只看楼主
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
结帖率:100%
已结贴  问题点数:20 回复次数:4 
菜鸟请教一个关于格式化输出的问题
我想在某一整数前补零,正常的话这样就可以
printf ("%.2i",intA);
这样的话, 假如intA小于10,那么将在intA前补上一个零。 我问的是里面的2可不可以用一个变量来代替呢?
搜索更多相关主题的帖子: 正常 
2011-02-25 16:45
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
以下是引用犬虫门心在2011-2-25 16:47:07的发言:

不行啊。
你最终的要求是什么呢?

我就想要下面的效果(我语言表达能力欠缺)

root@~ #n=1
root@~ #printf "%0${n}d\n" 1
1
root@~ #n=2
root@~ #printf "%0${n}d\n" 1
01
root@~ #n=3
root@~ #printf "%0${n}d\n" 1
001
root@~ #n=10
root@~ #printf "%0${n}d\n" 1
0000000001
root@~ #
这个n怎么传递给printf呢?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-25 16:55
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
以下是引用犬虫门心在2011-2-25 17:05:50的发言:

本人才疏学浅,在我们实训小组开发的程序中,这样的问题是将数值转换成字符串,然后再输出。

多谢。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-25 17:06
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
还没有学到那spritnf和puts。 再次感谢。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-25 17:25
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
这个问题解决啦, 查看了一下printf函数的手册。
分享给大家
程序代码:
int m=4;
int n=12;
printf ("%.*i\n",m,n); //结果就是0012,星号的意思就是把参数列表里下个参数作为输出宽度,这里就是m



[ 本帖最后由 ansic 于 2011-2-25 19:02 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-25 19:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-332769-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.271082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved