主题:[讨论]关于入门必须做的题目的第一题
BBGASJ
[专家分:0] 发布于 2008-06-09 21:52:00
其中这两句不理解
printf("%*d%2d%2d\n", 6, d, 5, 0);
printf("+%*d%2d%2d\n", 5, d, 5, 0);
请问%*d是什么意思?我把6,去了他为什么乱序输出?
请各位高人赐教。谢谢!
回复列表 (共6个回复)
沙发
BBGASJ [专家分:0] 发布于 2008-06-10 17:11:00
刚查到%后的"*"附加说明符,用来表示跳过它相应的数据。但是这里如果跳过一个的话,不是应该只输出两个字符吗?
板凳
姚姚的梦 [专家分:160] 发布于 2008-06-16 13:39:00
我也是个新手不知道怎么回事
这是运行结果:
-858993460 5 0
+-858993460 5 0
Press any key to continue
不理解-858993460是什么意思
请各位指教
谢谢
3 楼
yucejun [专家分:100] 发布于 2008-06-23 12:13:00
我也不是很清楚,但根据你的说明,我猜测到了.
"*"附加说明符,用来表示跳过它相应的数据---即跳过 6 ,但它会输出 6 之后的数据:
例 printf("%*d\n",6,d); 时,,跳过 6 输出 d 的值.如果定义 d 为整数. d 没赋值,则输出一个随机数,我的机子输出的是 0 ;
4 楼
roudao [专家分:0] 发布于 2008-06-23 12:18:00
我是新手请大家帮我一下我的QQ群号是63241360 大家可以进去一起讨论
5 楼
弗雷德程序员 [专家分:0] 发布于 2011-11-20 22:02:00
格式说明“*”允许对应的数据不输出
6 楼
cgl_lgs [专家分:21040] 发布于 2011-11-21 07:48:00
*只用于scanf,貌似没有用于printf的。貌似用于printf时会跳过一个再输出,但%*d还会输出,只不过它相当于跳过一个输出下一个吧。没仔细研究过,不知道标准里是怎么说的。
我来回复