• printf详解


    用了这么多年c了,今天想编个小程序练练手,忽然发现对于printf这个函数并不甚了解。上网查了查,下面是对printf()的详解:

    函数原型:

    #include <stdio.h>
    int printf(const char *format,[argument]);

    format 参数定义输出的格式,定义格式为:%[flags][width][.prec][F|N|h|l]type


    其中type含义:

    字符 输入数据类型 含义
    d、i int 有符号10进制数,i是老式写法
    o unsigned int 无符号8进制数
    u unsigned int 无符号10进制数
    x、X unsigned int 无符号16进制数,x用abcdef,X用ABCDEF表示10~15的数
    f double 小数
    e、E double
    科学计数法表示的数,大小写代表用的“e”的大小写
    g、G double 使用以上两种中最短的形式,大小写的使用同%e和%E
    c char 把输入的数字转换为对应的字符
    s、S char *、wchar_t * 字符串
    p void * 以16进制形式输出指针
    n int * 到此字符之前为止,一共输出的字符个数,不输出文本
    % 不输入 输出字符“%”本身

    注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f

    flags规定输出格式,含义:

    字符 名称 说明
      空白 右对齐,左边填充0和空格
    - 减号 左对齐,右边填充空格
    +
    加号 在数字前增加符号 + 或 -
    0 数字零 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”)
      空格 输出值为正时加上空格,为负时加上负号
    # 井号 type是o、x、X时,增加前缀0、0x、0X
    type是e、E、f、g、G时,一定使用小数点
    type是g、G时,尾部的0保留

    width用于控制输出数值的宽度,含义:

    n(n=1,2,3...) 宽度至少为n位,不够以空格填充
    0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充
    * 格式列表中,下一个参数还是width
    prec
    用于控制小数点后面的位数,取值和含义如下:
    无 按缺省精度显示
    0 当type=d,i,o,u,x时,没有影响
    type=e,E,f时,不显示小数点
    n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数
    type=其他,表示显示的最大宽度
    .* 格式列表中,下一个参数还是width

    F|N|h|l

    表示指针是否是远指针或整数是否是长整数
    n 近指针
    h 短整数或单精度浮点数
    l 长整数或双精度浮点数
    下列环境变量影响 printf 命令的执行:
    LANG 在 LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。
    LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_环境变量设置的任何语言环境编目值的语言环境。
    LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。
    LC_MESSAGES 确定写消息使用的语言。
    LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、g 和 G 转换字符编写的数字的格式。
    Format 参数是包含三种对象类型的一个字符串:
    * 无格式字符复制到输出流。
    * 转换规范,每个规范导致在值参数列表中检索 0 个或更多个项。
    * 以下转义序列。在复制到输出流时,这些序列导致它们的相关操作在有此功能的设备上显示:
    a 警告
     退格
    f 换页
    换行
    回车
    跳格
    v 垂直跳格
    ddd ddd 是 1、2 或 3 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。
     
  • 相关阅读:
    合并两个有序链表
    有效括号方法二
    有效括号
    es6 中的模块化
    XMLHttpRequest 对象
    AST
    php读写文件方式
    vue开发中遇到的问题
    sublime操作
    cmd命令
  • 原文地址:https://www.cnblogs.com/xianzhedeyu/p/3383855.html
Copyright © 2020-2023  润新知