zoukankan      html  css  js  c++  java
  • c语言输出格式 漫谈

    ★d格式符,用来输出十进制整数.

                    ⑴%d,按整型数据的实际长度输出.

                    ⑵%md,m为指定的输出字段的宽度,数据位数小于m,左边补空格,若大于m,按实际长度输出

                    ⑶%ld,输出长整型数据(long)

            ★o格式符,以八进制输出整数(不带符号,他将符号位也作为八进制数的一部分了)
                    ⑴%o,参考%d的解释.

                    ⑵%lo,参考%ld的解释.

                    ⑶%mo,参考%md的解释.

            ★x,X格式符,以十六进制输出整数
                    也是3种参考%d的解释.
            ★u格式符,用来将unsigned型数据,既无符号数,以十进制形式输出
            ★c格式符,输出一个字符.
            ★s格式符,输出一个字符串.
                    ⑴%s,如printf("%s","CHINA")

                    ⑵%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.

                    ⑶%-ms,串小于m,则在m列范围内字符串左靠,右补空格.

                    ⑷%m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格.

                    ⑸%-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n>m,那么m自动取n的值,既保证n个字符正常输出.

                    printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");

            ★f格式符,用来输出实数,以小数形式输出.

                    ⑴%f,全部输出,而且输出6位小数.

                    ⑵%m.nf,输出数据共占m列,n位小数,如果数据长度小于m那么左边补空格

                    ⑶%-m.nf,和上面的m.nf相反,为左靠齐,右补空格.

            ★e,E格式符,以指数形式输出实数

                    ⑴%e,不指定输出数据所占的宽度和数字部分的小数位数.

                    ⑵%m.ne和%-m.ne,这里n指小数部分的位数

            ★g,G格式符,用来输出实数,它根据数值大小,自动选择f格式还是e格式,(选占宽最少的一种),且不输出无意义的0.这种格式用的不多.


    格式输出小结:
    (1)最常用的格式是%d,含义是以10进制形式打印一个整数。
    如果输出的整数是负数,则,输出的第一个字符就是‘-’号
    (2)%u格式与%d格式类似,只不过要求打印无符号10进制整数。
    (3)%o格式请求输出8进制整数
    (4)%x和%X格式请求输出16进制整数。
    %x格式中用小写字母a,b,c,d,e,f来表示10到15之间的数
    %X格式中用大写字母A,B,C,D,E,F来表示10到15之间的数
    共同点:8进制和16进制整数总是作为无符号数处理的。
    (5)%s格式用于打印字符串,与之对应的参数应该是一个字符指针,待输出的字符始于该指针所指向的地址,直到出现一个空字符('\0')
    才终止。
    (6)%c格式用于打印单个字符:例如:
    printf("%c",c); 等价于 putchar(c);
    (7)%g,%f和%e这三个格式用于打印浮点值。
    %g格式用于打印那些不需要按列对齐的浮点数特别有用。其作用有二:
    一,去掉该数尾多余的零(没有达到六位的数)
    二,保留六位有效数字(多余六位的)
    %e格式用于打印浮点数时,一律显示地使用指数形式:例如:输出圆周率时是:3.141593e+00

    两者的区别:
    %g格式打印出的数是总共6位有效数字
    %e格式打印出小数点后的6位有效数字

    %f禁止使用指数形式来表示浮点数。因此圆周率输出为:3.141593
    (但注意它的精度要求:也是小数点后6位有效数字)
    (8)%%格式用于打印一个%字符。
    (9)%E和%G只是在输出时用大写字母(E)代替了小写字母(e)

    另外需要注意的一些知识点:


    ***************************************
    对齐规则:
    (1)当指定宽度大于要输出位数时,数右对齐,左端补空格
    当前缀'-'号时,想要数左对齐,右端补空格
    大大的前提:只有当“指定宽度”存在时,前缀'-'才有意义。
    经验:一般来说,左端对齐的形式看上去要美观整齐一点。

    ***************************************
    输出正负号的技巧:(记住)例如:
    printf("%+d %+d %+d\n",-5,0,5);
    只要在中间加个“+”号就行。作用是输出符号位(即,数的正负号)
    如果不希望正数的前面出现‘+’号,可用下面的方法


    ***************************************
    只要在中间加个“ ”号(即:空格)就行。(记住)例如:
    作用:如果一个数是非负数,就在它的前面插入一个空格。
    int i;
    for(i=-3;i<=3;i++)
        printf("% d\n",i); //注意%和d之间有一个空格
    输出结果如下:
    -3
    -2
    -1
    0
    1
    2
    3

    问题:如果‘+’和‘ ’同时出现在“中间”时,要以‘+’为准。

    两个符号的共同点:用于对齐输出的数:(尤其对于小数来说)
                      两种格式:%+e和% e


  • 相关阅读:
    【队列】队列的分类和实现
    【JSP】EL表达式语言
    【JSP】JSP的介绍和基本原理
    【JSP】JSP Action动作标签
    【Servlet】关于RequestDispatcher的原理
    【JSP】JSP指令
    【JSP】JSP中的Java脚本
    【算法】表达式求值--逆波兰算法介绍
    C语言指针详解
    移动架构-MVVM框架
  • 原文地址:https://www.cnblogs.com/yeye518/p/2231740.html
Copyright © 2011-2022 走看看