zoukankan      html  css  js  c++  java
  • C语言 printf 格式化输出函数

    用 法:

      int printf(const char *format,[argument]);

      format 参数输出的格式,定义格式为:

      %[flags][width][.perc] [F|N|h|l]type

      规定数据输出方式,具体如下:

      1.type 含义如下:

      d 有符号10进制整数

      i 有符号10进制整数

      o 有符号8进制整数

      u 无符号10进制整数

      x 无符号的16进制数字,并以小写abcdef表示

      X 无符号的16进制数字,并以大写ABCDEF表示

      F/f 浮点数

      E/e 用科学表示格式的浮点数

      g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数

      c 单个字符

      s 字符串

      % 显示百分号本身

      p 显示一个指针,near指针表示为:XXXX

      far 指针表示为:XXXX:YYYY

      n 相连参量应是一个指针,其中存放已写字符的个数

      2.flags 规定输出格式,取值和含义如下:

      无 右对齐,左边填充0和空格

      - 左对齐,右边填充空格

      + 在数字前增加符号 + 或 -

      一个空格 只对负数显示符号

      # 当type=c,s,d,i,u时没有影响

      type=o,x,X时,分别在数值前增加'0',"0x","0X"

      type=e,E,f时,总是使用小数点

      type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下n(n=1,2,3...) 宽度至少为n位,不够以空格填充

      0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格

      式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下:

      无 按缺省精度显示

      0 当type=d,i,o,u,x时,没有影响

      type=e,E,f时,不显示小数点

      n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数

      type=其他,表示显示的最大宽度 .*

      格式列表中,下一个参数还是width

      5.F|N|h|l 表示指针是否是远指针或整数是否是长整数

      F 远指针

      n 近指针

      h短整数或单精度浮点数

      l 长整数或双精度浮点数

      1.一般格式

      printf(格式控制,输出表列)

      例如:printf("i=%d,ch=%c/n",i,ch);

      说明:

      (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:

      ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。

      ②普通字符,即需要原样输出的字符。

      (2)“输出表列”是需要输出的一些数据,可以是表达式

      (3)printf函数的一般形式可以表示为

      printf(参数1,参数2,……,参数n)

      功能是将参数2~参数n按参数1给定的格式输出

      2.格式字符(9种)

      (1)d(或i)格式符。用来输出十进制整数,有以下几种用法:

      ①%d,按整型数据的实际长度输出。

      ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

      ③%ld(%mld 也可),输出长整型数据。

      例如:long a=123456;

      printf("%ld",a);

      (2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。

      (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。

      (4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。

      参见:li4-3.c/*无符号数据的输出*/

      (5)c格式符,用来输出一个字符。格式:%c,%mc都可。

      (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。

      参见:li4-5.c /*字符串的输出*/

      (7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。

      注意:单精度实数的有效位数一般为7位,双精度为16位。

      参见:li4-6.c/*输出单精度实数时的有效位数*/

      li4-7.c/*输出双精度实数时的有效位数*/

      li4-8.c/*输出实数时指定小数位数*/

      (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。

      (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出占宽度较小的一种)。

      3.说明

      (1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;

      (2)“格式控制”字符串内可以包含转义字符;

      (3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:

      printf("%f%%",1.0/3);

     
    格式化输出行不能超出 LINE_MAX 字节长度。

      下列环境变量影响 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 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。

      该命令返回值:

      0 成功完成。

      >0 发生错误。

      文件

     Linux系统中 /usr/bin/printf 包含 printf 命令。

  • 相关阅读:
    深入理解JavaScript系列
    Knockout应用开发指南(完整版) 目录索引
    js原生设计模式——8单例模式之简约版属性样式方法库
    彻底理解JavaScript原型
    Javascript模块化编程(一):模块的写法
    使用Grunt构建自动化开发环境
    js原生之一个面向对象的应用
    js原生之函数
    angular源码分析:angular中的依赖注入式如何实现的
    js原生之scrollTop、offsetHeight和offsetTop等属性用法详解
  • 原文地址:https://www.cnblogs.com/azbane/p/7380110.html
Copyright © 2011-2022 走看看