每天一点C– printf

前几天就下定决心开始学习C了,之前学习C不是看着书本,就是看着视频,这次看到了一个 gitbook上的笨办法学C,就试着看了几篇,感觉还比较适合我的学习方式,这不就开始嗑代码了。
今天就记录一下printf的格式化输出吧

printf

基本格式:%(flags)(width)(. prec)type

type

  1. d 有符号10进制整数
  2. i 有符号10进制整数
  3. o 有符号8进制整数
  4. u 无符号10进制整数
  5. x 无符号的16进制数字,并以小写abcdef表示
  6. X 无符号的16进制数字,并以大写ABCDEF表示
  7. F/f 浮点数
  8. E/e 用科学表示格式的浮点数
  9. g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
  10. c 单个字符
  11. s 字符串
  12. % 显示百分号本身
  13. p 显示一个指针,near指针表示为:XXXX
  14. far 指针表示为:XXXX:YYYY
  15. n 相连参量应是一个指针,其中存放已写字符的个数
    在这些个符号前还需要一个%来表示,在这些type前还会有一些flags

flags

  1. 无 右对齐,左边填充0和空格
  2. ‘-’ 左对齐,右边填充空格
  3. ‘+’ 在数字前增加符号 + 或 –
  4. 一个空格 只对负数显示符号
  5. #当type=c,s,d,i,u时没有影响,type=o,x,X时,分别在数值前增加’0′,”0x”,”0X”,type=e,E,f时,总是使用小数点, type=g,G时,除了数值为0外总是显示小数点

width

width 用于控制显示数值的宽度n(n=1,2,3…) 宽度至少为n位,不够以空格填充
0n(n=1,2,3…) 宽度至少为n位,不够左边以0填充 * 格式列表中,

prec

prec 用于控制小数点后面的位数
1. 无 按缺省精度显示
1. 0 当type=d,i,o,u,x时,没有影响 type=e,E,f时,不显示小数点
1. n(n=1,2,3…) 当type=e,E,f时表示的最大小数位数,type=其他,表示显示的最大宽度 .*

F|N|h|l

表示指针是否是远指针或整数是否是长整数
1. F 远指针
1. n 近指针
1. h短整数或单精度浮点数
1. l 长整数或双精度浮点数