zoukankan      html  css  js  c++  java
  • [C++]sprintf的格式化方法


    引用:http://micro.mud.com.cn/gm/efuns/strings/sprintf.htm

    名称: printf, sprintf - 转换成指定格式的输出结果.
    语法: void printf( string format, ... );
    string sprintf( string format, ... );

    无返回值 printf( 字符串 format, ... );
    字符串 sprintf( 字符串 format, ... );
    用法:

    以下为 LPC (s)printf() 的格式用法, Lynscar (Sean A Reith) 加入了一些扩充用法.

    目前的版本支援以下的修改格式 (modifier):

    " "  在正整数之前放入一个空格.

    "+"  在正整数之前放入一个 + 号.

    "-"  对齐栏位 (field) 的左边. 请注意: 标准的 (s)printf() 预设是对齐右边, 但是对主要以字符串为基础的语言来说, 这样非常奇怪. 在此为了保留与 C 的相容性而保留此一特性.

    "|"  对齐栏位的中心.

    "="  如果字符串长度比栏位大小还长, 使用纵列模式 (column mode). 在此只对字符串有效, 其他的类型一律无效. 纵列模式中, 字符串中的字会自动换行 (wrap).

    "#"  表格模式. 在栏位之内, 字符串中的每一个字会换一行 (即每个字后面加上 \n). 只对字符串有效.

    n   以整数指定栏位大小. 用 * 代替整数则使用参数指定栏位大小. 如果 n 是 0, 则此栏除了数据以外就以空值 (zeros) 填满. 如果 n 不是 0, 此栏除了数据以外将放入空白字符 (space) 或是另外指定的字符.

    "."n 指定输出的精确度为 n. 普通的字符串在此之后则被截断 (如果精确度 n 大于栏位长度, 则栏位长度变为精确度 n ). 表格则使用精确度指定纵列的总数 (如果不指定精确度, 则表格会自动计算最适合的输出结果). 精确度对于其他的数据类型无效.

    ":"n n 指定 fs 和精确度, 如果 n 是 0, 则原来用以填满栏位的空格就代以空值 (zeros).

    "@"  参数为一个数组. 其他除了 @ 以外, 对应的格式数据亦将用于数组中的每一个元素.

    "'X'" 单引号 (') 中的字符用以填满整个栏位中, 数据以外的空间. (预设值是空白字符) (如果同时在栏位大小之前指定一个空值, 又指定 'X' 字符串填满栏位, 则以后者为准) 注意: 如果欲填满的字符串中要使用单引号 (') 或是双引号 ("), 您必须使用 \' 或 \" 以避开编译器的检查.

    以下是指定类型的格式:

    %   此处不指定任何参数, 而以 % 输出. 忽略所有的修改格式 (modifier).
    O   参数为 LPC 数据类型.
    s   参数为字符串.
    d, i 参数为整数, 并以十进位印出.
    c   参数为整数, 并以字符印出.
    o   参数为整数, 并以八进位印出.
    x   参数为整数, 并以十六进位印出.
    X   参数为整数, 并以十六进位印出 (A 到 F 以大写印出).
    f   浮点数.

    返回: sprintf() 返回指定格式的字符串.
    作者: Sean A. Reith (Lynscar)
    参考: sscanf
    翻译: Spock @ FF 97.Jul.23.
  • 相关阅读:
    TDD测试驱动开发
    力导向算法研究
    简单软件破解入门
    学习Go语言之模板方法模式
    学习Go语言之观察者模式
    学习Go语言之使用channel避免竞态问题
    学习Go语言之使用原子访问或互斥锁解决竞态问题
    使用 Beego 搭建 Restful API 项目
    学习Go语言之抽象工厂模式
    [转载]几张图看懂区块链技术到底是什么?
  • 原文地址:https://www.cnblogs.com/xuzhong/p/413625.html
Copyright © 2011-2022 走看看