C 语言学习——printf()输出格式

转载自:http://www.cnblogs.com/tureno/articles/3630689.html

1、转换说明符

  %a [ %A ]          浮点数,十六进制数和 p- [ P- ] 记数法 [ C99 ]

  %c                     字符

  %d                     有符号十进制整数

  %f                      浮点数,包括 float 和 double

  %e [ %E ]          浮点数指数输出[ e- / E- 记数法 ]

  %g [ %G ]          浮点数不显示无意义的零

  %i                      有符号十进制整数( 与 %d 相同 )

  %u                     无符号十进制整数

  %o                     八进制整数

  %x [ %X ]          十六进制整数

  %P                    指针

  %s                    字符串

  %%                   “%”

2、标志

  左对齐: “ - ” , “%-20s”

  右对齐: “ + ” , “%+20s”

  空格:若符号为正,则显示空格,负则显示"-"   e.g.   "% "      

  #:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;

           对e,g,f 类当结果有小数时才给出小数点。

3、格式字符串

  [ 标志 ] [ 输出最少宽度 ] [ .精度 ] [ 长度 ] 类型

  "%-md":左对齐,若m比实际少时,按实际输出。

  “%m.ns”:输出m位,取字符串(左起)n 位,左补空格,当n > m or m 省略时 m = n;

    eg:"%7.2s" 输入 CHINA  ---> 输出 “     CH”

  “%m.nf”:输出浮点数,m 为宽度,n 为小数点右边数位。

    eg: "%" 输入 3852.99  --->输出 3553.0

  

  printf 的格式控制的完整格式:

  %-.n l 或 h 格式字符

  下面对组成格式说明的各项加以说明:

  1. % :表示格式说明的起始符号,不可缺少。
  2.  -  :有 - 表示左对齐输出,如省略表示右对齐输出。
  3.  0 :有0表示指定空位位填0,如省略表示指定空位不填。
  4.  m.n:m 值域宽,即对应的输出项在输出设备上所占的字符数。N 指精度。用于说明输出的实型数的小数位数。指定n时,隐含的精度为 n = 6 位。
  5. l 或 h :l 对整型指long型,对实型指double型。h 用于将整型的格式字符修正为short型。

注意:一个 h 表示 short ,即 short int,两个 h 表示 short short,即 char

    “%hhx” 用于输出 char

    “%hx”   用于输出 short int

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

格式字符

格式字符用以指定输出项的数据类型和输出格式

1、d 格式:用来输出十进制整数

  • %d :按照整型数据的实际长度输出。
  • %md : m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
  • %ld : 输出长整型数据    

2、o 格式:以无符号八进制形式输出整数。

  • “ %lo ”  对长整型格式输出。
  • “%mo”  指定字段宽度格式输出。

3、x 格式:以无符号十六进制形式输出整数。

  • “%lx” 长整型格式输出。
  • “%mx” 指定字段宽度格式输出

4、u 格式:以无符号十进制形式输出整数。

  • “%lu” 长整型格式输出
  • “%mu” 指定字段宽度格式输出

5、c 格式:输出一个字符。

6、s 格式:用来输出一个字符串。

  • "%s" :例printf("%s", "CHINA") 输出CHINA
  • "%ms" :输出的字符串占 m 列,如字符串本身长度大于 m ,则突破 m 的限制,将字符串全部输出。若字符串小于 m ,则左补空格。
  • "%-ms":如果字符串小于 m ,则在 m 列范围内, 字符串向左靠,右补空格。
  • "%-m.ns":其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

7、f 格式:用来输出实数(包括单,双精度),以小数形式输出。

  • "%f":不指定宽度,整数部分全部输出并输出6位小数。
  • “%m.nf”:输出共占 m 列,其中有 n 为小数,如数值宽度小于 m 左端补空格
  • "%-m.nf":输出共占 n 列,其中有 n 位小数,如数值宽度小于 m 右端补空格

8、e 格式:以指数形式输出实数。

  • "%e":数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
  • "%m.ne" 和 "%-m.ne":m、n 和 “-” 字符含义与前面相同。此处 n 指数据的数字部分的小数位数, m 表示整个输出数据所占的宽度。 

9、g 格式:自动选 f 格式或 e 格式中较短的一种输出,且不输出无意义的零。

原文地址:https://www.cnblogs.com/xushuhai/p/9554159.html