zoukankan      html  css  js  c++  java
  • printf "%.*s"

    小数点.后“*”表示输出位数,具体的数据来自参数表
    printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。

    同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。

    #include <cstdio>
    #include <iostream>

    int main()
    {
    char *s = "this is test example";
    int a,b;
    printf("%.*s\n", 10, s);//这里的常量10就是给*号的,你也可以用一个变量来控制宽度
    printf("%*.*s\n", 20, 10, s);//常量20控制输出所占位宽,也可以用一个变量控制
    std::cin>>a>>b; //输入15 10
    printf("%*.*s\n", a, b, s);//输出为:-----this is te
    std::cin.get();
    std::cin.ignore();//暂停程序执行
    }

    输出结果为:

    this is te

    ----------this is te//-代表空格

    15  10 //输入

    -----this is te

    注:printf的一般形式为printf("格式控制字符串",输出列表),格式控制字符串形式为:[标志][输出最小宽度][.精度][长度]类型。

    其中方括号[]中的项为可选项。 各项的意义介绍如下:
    1)类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:
    d  以十进制形式输出带符号整数(正数不输出符号)
    o  以八进制形式输出无符号整数(不输出前缀 0)
    x,X  以十六进制形式输出无符号整数(不输出前缀 Ox)
    u  以十进制形式输出无符号整数
    f  以小数形式输出单、双精度实数
    e,E  以指数形式输出单、双精度实数
    g,G  以%f 或%e 中较短的输出宽度输出单、双精度实数
    c  输出单个字符
    s  输出字符串
    2)标志:标志字符为-、+、#、空格四种,其意义下表所示:
    -  结果左对齐,右边填空格
    +  输出符号(正号或负号)
    空格  输出值为正时冠以空格,为负时冠以负号
    #  对 c,s,d,u类无影响;对 o 类,在输出时加前缀 o;对 x 类,在输出时加前缀 0x;对 e,g,f 类当结果有小数时才给出小数点
    3)输出最小宽度:用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。
    4)精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
    5)长度:长度格式符为 h,l 两种,h 表示按短整型量输出,l 表示按长整型量输出。

  • 相关阅读:
    python json 和 pickle的补充 hashlib configparser logging
    go 流程语句 if goto for swich
    go array slice map make new操作
    go 基础
    块级元素 行内元素 空元素
    咽炎就医用药(慢性肥厚性咽炎)
    春季感冒是风寒还是风热(转的文章)
    秋季感冒 咳嗽 怎么选药
    解决IE浏览器“无法显示此网页”的问题
    常用的 css 样式 记录
  • 原文地址:https://www.cnblogs.com/yuaqua/p/2219856.html
Copyright © 2011-2022 走看看