• printf 输出格式


    printf 输出格式
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下:
    1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:
    表示输出类型的格式字符       格式字符意义
    a 浮点数、十六进制数字和p-计数法(C99)
    A 浮点数、十六进制数字和p-计数法(C99)
    c                 输出单个字符
    d                 以十进制形式输出带符号整数(正数不输出符号)
    e                 以指数形式输出单、双精度实数
    E                 以指数形式输出单、双精度实数
    f                  以小数形式输出单、双精度实数
    g                 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数小于-4或者大 于等于精度时使用
    G                 以%f%e中较短的输出宽度输出单、双精度实数,%e格式在指数小于-4或者大于等于精度时使用
    i 有符号十进制整数(与%d相同)
    o                 以八进制形式输出无符号整数(不输出前缀O)
    p 指针
    s                 输出字符串
    x                 以十六进制形式输出无符号整数(不输出前缀OX)
    X                以十六进制形式输出无符号整数(不输出前缀OX)
    u                 以十进制形式输出无符号整数
    2.标志
    标志字符为-、+、#、空格和0五种,其意义下表所示:
    标志格式字符      标 志 意 义
    -           结果左对齐,右边填空格
    +           输出符号(正号或负号)
    空格 输出值为正时冠以空格,为负时冠以负号
    #          对c,s,d,u类无影响;对o类,在输出时加前缀0;对x类,
    在输出时加前缀0x或者0X;对g,G 类防止尾随0被删除;
    对于所有的浮点形式,#保证了即使不跟任何数字,也打印一个小数点字符
    0 对于所有的数字格式,用前导0填充字段宽度,若出现-标志或者指定了精度(对于整数),忽略

    3.输出最小宽度
    用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

    如:
    printf("%-10e " , 223.11);
    printf("%+10e " , 232.11111111);

    4.精度
    精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

    5.长度
    长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。

    6.特殊用法

    对于m.n的格式还可以用如下方法表示(例)
    char ch[20];
    printf("%*.*s ",m,n,ch);
    前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。


    还有一种特殊的输出格式 %n 可以将所输出字符串的长度值赋绐一个变量, 见下例:
    int slen;
    printf("111%n", &slen);
    执行后变量被赋值为3。

  • 相关阅读:
    洛谷 P2831 [NOIP2016]愤怒的小鸟
    洛谷 P1736 创意吃鱼法
    洛谷 P2347 砝码称重 + bitset简析
    洛谷 P3384 [模板] 树链剖分
    洛谷 P1038 [NOIP2012] 借教室
    洛谷 P3959 [NOIP2017]宝藏 题解
    洛谷 AT2167 Blackout 题解
    洛谷 P1246 编码 题解
    C#中ref关键字的用法总结
    C#中的值传递与引用传递(in、out、ref)
  • 原文地址:https://www.cnblogs.com/jaydenhpj/p/4433384.html
Copyright © 2020-2023  润新知