QQ登录

只需一步,快速开始

搜索
查看: 157|回复: 6

[已解决]请问 第14课 视频教程中 %-2d 什么意思

[复制链接]
最佳答案
0 
累计签到:120 天
连续签到:1 天
发表于 2017-8-12 16:23:28 | 显示全部楼层 |阅读模式
1鱼币
查了下 %2d 是前面 加两个空格 前面用两个空格补位么?
           %0.2d 是前面加两个0  用0补位对么?
           %-2d 是什么 也是空格补位?  是两个空格么?
最佳答案
2017-8-12 16:23:29
屁哥 发表于 2017-8-12 16:55
举个栗子呗  谢谢

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a;

  5.         printf("请输入一个整数:");
  6.         scanf("%d",&a);

  7.         printf("2d格式 :%2d\n", a);
  8.         printf("02d格式:%02d\n", a);
  9.         printf("-2d格式:%-2d\n", a);

  10.         return 0;
  11. }
复制代码


捕获.PNG

如果位数大于等于你输出的要求就没有什么左右对其和加0了。
8-12-1.png

最佳答案

查看完整内容

如果位数大于等于你输出的要求就没有什么左右对其和加0了。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
147 
累计签到:109 天
连续签到:56 天
发表于 2017-8-12 16:23:29 | 显示全部楼层    本楼为最佳答案   
屁哥 发表于 2017-8-12 16:55
举个栗子呗  谢谢

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a;

  5.         printf("请输入一个整数:");
  6.         scanf("%d",&a);

  7.         printf("2d格式 :%2d\n", a);
  8.         printf("02d格式:%02d\n", a);
  9.         printf("-2d格式:%-2d\n", a);

  10.         return 0;
  11. }
复制代码


捕获.PNG

如果位数大于等于你输出的要求就没有什么左右对其和加0了。
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
147 
累计签到:109 天
连续签到:56 天
发表于 2017-8-12 16:39:54 | 显示全部楼层
本帖最后由 丶忘却的年少o 于 2017-8-12 18:57 编辑

%2d:就是右对齐。以宽度2输出整型数,不足2时,左补空格。比如12,输出就是12;2输出就是 2(有空格)
%-2d:就是左对齐。以宽度2输出整型数,不足2时,右补空格。比如12,输出就是12;2输出就是2 (有空格)
%0.2d:好像没这个说法,应该是%02d。以宽度2输出整型数,不足2时,左补0。比如12,输出就是12;2输出就是02
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:120 天
连续签到:1 天
 楼主| 发表于 2017-8-12 16:55:06 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-12 16:39
%2d:就是左对齐。以宽度2输出整型数,不足2时,左补空格。比如12,输出就是12;2输出就是 2(有空格)
%-2d ...

举个栗子呗  谢谢
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
147 
累计签到:109 天
连续签到:56 天
发表于 2017-8-12 17:04:22 From FishC Mobile | 显示全部楼层
说错了,%2d和%02d是右对齐,%-2d才是左对齐。其实你按照图片中的程序,加2条打印把输出的格式用这三个分别打印看看,就知道了。我现在没办法打代码,不好意思
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
2 
累计签到:32 天
连续签到:1 天
发表于 2017-8-12 18:00:35 | 显示全部楼层
分析这个的过程是这样的。
首先看%d,就是说以整型输出。 那么夹在%d中的全是辅助功能符,我们接着看。

1.    % 2 d,中间夹了个2,就是说我输出的这个整型,占2个字符的宽度,右对齐。
-.PNG
可以看到我用了一个%2d, 一个%3d,一个宽度是2个字符,一个宽度是3个字符,因为是右对齐的,所以第一个5前面补1个字符以达到宽度为2,第二个5前面补2个空格,以达到宽度3.

2.    %0.2d, 我觉得你可能是看错了,因为是%d整型输出,就是没有小数点的。其实应该是%02d,依然是右对齐。其中0的意思是以0填充,(上面的例子里用的是空格符填充),2的意思同上,是宽度的意思。
%0.2d.PNG
你看我把 %0.4d 里面的小数点删掉了,结果还是一样的。因为%d是整型输出,不带小数部分,你规定小数点格式是无效的。

3.  有小数点的正确使用应该是 % . 2f,按照我前面说的分析方式,首先看到是%f,定点小数格式输出。 这里辅助功能符(%f中间夹的部分),m.n或者.n这样的形式,小数部分是几,结果就保留几位小数(四舍五入),整数部分就像上面两例一样,% 08.2 f,表示右对齐,宽度为8,填充0(没有8前面的0就是用空格填充)以补够8个字符宽度,  .2表示保留两位小数
%.2d..PNG

4. 如果加了 - 号, 那么就是上面说的右对齐部分改成左对齐,就是你要输出的数字会在它限定的宽度内靠左边,上面的例子里面我们说用空格或者0填充,都是填在左边,数字在靠右的位置,而加了负号以后,就是相反。但是注意,既然数字出现在左边了,那么右边填充0就会改变数字大小,所以Python会忽略左对齐补0
左对齐.PNG
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:120 天
连续签到:1 天
 楼主| 发表于 2017-8-12 19:37:22 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-12 17:04
说错了,%2d和%02d是右对齐,%-2d才是左对齐。其实你按照图片中的程序,加2条打印把输出的格式用这三个分别 ...

好嘞  我试试  
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-22 01:47 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表