C语言关于空格的问题

[复制链接]
查看11 | 回复5 | 2010-8-20 20:50:41 | 显示全部楼层 |阅读模式
写一个程序要求输出结果如下
a=空格3空格空格b=空格4空格空格c=空格5,其中a=3,b=4,c=5,为什么答案是“a=%2db=%2dc=%2d\n”,a,b,c呢????中间的空格跑哪儿了啊?请高人指点一下 还有像%2db中的b到底怎么个意思啊

回复

使用道具 举报

千问 | 2010-8-20 20:50:41 | 显示全部楼层
大哥,这其实是分开的,a=%2db=%2dc=%2d\n其实是a=%2d,b=%2d,c=%2d,\n是换行,%2d意思是占两位,若字符不够长度,则在前面补空格,你可以试着在printf中输入a=%2d,b=%2d,c=%2d,加逗号,这样你就明白了。
回复

使用道具 举报

千问 | 2010-8-20 20:50:41 | 显示全部楼层
(偷笑啊)那不是%db,是%2d 后边的那个b是和后边的=一起构成b=,然后输入方便,%nd,代表了对齐的方式,也就是你输入的数字,长度不足n位的话,会左补空格以保持右边的对齐。
回复

使用道具 举报

千问 | 2010-8-20 20:50:41 | 显示全部楼层
%2d中的2表示输出数字的宽度,比如a= 3,3本身宽度为1,不够2,就在3的前面(左面)补一个空格。这样就实现了题目要求。当然用空格肯定也对,答案只是给出一种,或者题目还有要求 %2d意思是宽度为2的实型,宽度不够2补空格,b和前面的a是一个意思。
回复

使用道具 举报

千问 | 2010-8-20 20:50:41 | 显示全部楼层
关键就在%2d这里它的意思是输出如果宽度不足两个字符,则用空格填补
回复

使用道具 举报

千问 | 2010-8-20 20:50:41 | 显示全部楼层
%2一就是占2个字符的空格
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行