• printf


    manual:

    http://man7.org/linux/man-pages/man3/printf.3.html

        int printf(const char *format, ...);

     通过format格式串控制输出,调用成功返回输出字符个数(不包括null);失败返回负值。

        char buf1[256];
        sprintf(buf1, "%d %o %u %x %X %f ",    100, 100, 100, 188, 188, 100.123);
        //buf1= "100 144 100 bc BC 100.123000 " %f默认六位有效数字
    
        sprintf(buf1, "%d %#o %u %#x %#X %f ",    100, 100, 100, 188, 188, 100.123);
        //buf1 = "100 0144 100 0xbc 0XBC 100.123000 " %f默认六位有效数字
    
        sprintf(buf1, "%.2d %f %.4f %010.4f", 100, 100.123, 100.123, 100.123);
        //buf1 = "100 100.123000 100.1230 00100.1230" %f默认六位有效数字
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%4d %10d", 100, 1888);
        //buf1 = " 100       1888"  右对其
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%-4d %-10d", 100, 1888);
        //buf1 = "100  1888      " 左对齐
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%04d %010d", 100, 1888);
        //buf1 = "0100 0000001888" 右对其
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%*d", 4, 188);
        //buf1 = " 188"  右对其
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%.4d",188);
        //buf1 = "0188"  右对其
    
        char str1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'}; 
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%s", str1);
        //buf1 未知结束串
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%.7s", str1);
        //buf1 = "ABCDEFG"
    
        memset(buf1, 0, sizeof(buf1));
        sprintf(buf1, "%#0*X", 8, 128);
        //buf1 = "0X000080" 

    格式串(关键摘要)

      格式串是由字符串组成,在初始化串中,由0个或者多个转换准则组成:

        1.普通字符(不包括%),直接拷贝到输出流中

        2.转换符,每一个转换符将取0个或者多个后续参数,每一个转换以'%'开始,以转换说明符结束,存在0或者多个标识,一个可选择的占位,一个可调节的精度,和一个长度修饰符。

      参数与转换符必须一致,默认是按照给定的顺序;如果出现 '%*' ,则请求下一个参数(参数不够将会失败)

    标识字符

      字符'%' 后0个 或者多个标识:

     #   值会显示另一种状态,对于o八进制转换,第一个字符会是0; x,X十六进制转换,结果不为0时增加'0x' 、‘0X’前缀。

     0 值前缀对齐用0填充,对于d, i, o, u, x, X, a, Ae, E, f, F, g,G转换,0填充左侧而不是空格

     - 值左对齐

    占位宽

      一个可选的十进制数字指定了最小占位宽,如果值少于占位宽,则会以空格填充。

    精度

      在转换里,以'.'标识,接一个十进制数字。对于d, i, o, u, x, and X转换,最小数字显示,不足则填充; a, A, e, E, f, and F 决定了基数的精度;g,G决定最大的精度;s,S决定了取最多的字符数。

    长度修饰

    integer : d, i, o, u, x, or X

    l : long int , unsigned long int

    ll : long long int , unsigned long long

    L : long double

    j:  intmax_t

    z : size_t

    t : pirdiff_t

  • 相关阅读:
    RabbitMQ 安装
    字符串转换
    sqlserver 远程链接
    力软框架 接口映射的时候不能修改添加接口原因
    json串处理2
    版本比较,数据库存储
    各种分页方法推荐
    生成数据库编号重复问题
    从统计局抓取2016年最新的全国区县数据!!
    “集群和负载均衡”等的通俗解释
  • 原文地址:https://www.cnblogs.com/iclk/p/3976660.html
Copyright © 2020-2023  润新知