鱼C论坛

 找回密码
 立即注册
查看: 2867|回复: 6

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

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

#include <stdio.h>

int main(void)
{
        int a;

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

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

        return 0;
}

捕获.PNG

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

最佳答案

查看完整内容

如果位数大于等于你输出的要求就没有什么左右对其和加0了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-12 16:23:29 | 显示全部楼层    本楼为最佳答案   
屁哥 发表于 2017-8-12 16:55
举个栗子呗  谢谢

#include <stdio.h>

int main(void)
{
        int a;

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

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

        return 0;
}

捕获.PNG

如果位数大于等于你输出的要求就没有什么左右对其和加0了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-8-12 16:55:06 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-12 16:39
%2d:就是左对齐。以宽度2输出整型数,不足2时,左补空格。比如12,输出就是12;2输出就是 2(有空格)
%-2d ...

举个栗子呗  谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-12 17:04:22 From FishC Mobile | 显示全部楼层
说错了,%2d和%02d是右对齐,%-2d才是左对齐。其实你按照图片中的程序,加2条打印把输出的格式用这三个分别打印看看,就知道了。我现在没办法打代码,不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-8-12 19:37:22 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-12 17:04
说错了,%2d和%02d是右对齐,%-2d才是左对齐。其实你按照图片中的程序,加2条打印把输出的格式用这三个分别 ...

好嘞  我试试  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 12:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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