printf

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了printf相关的知识,希望对你有一定的参考价值。

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

format 参数输出的格式,定义格式为:%[flags][width][.perc] [F|N|h|l]type

 1.  type 含义如下:

(1)        整数

%d 整数的参数会被转成一有符号的十进制数字

%u 整数的参数会被转成一无符号的十进制数字

%o 整数的参数会被转成一无符号的八进制数字

%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示

%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数

%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。

%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。

%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。

%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。

%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

(2)        字符及字符串

%c 整型数的参数会被转成unsigned char型打印出。

%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止

%p 如果是参数是“void *”型指针则使用十六进制格式显示,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填充

4.  .prec 用于控制小数点后面的位数,取值和含义如下:

无 按缺省精度显示

0 当type=d,i,o,u,x时,没有影响,type=e,E,f时,不显示小数点

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

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

F 远指针

n 近指针

h 短整数或单精度浮点数

l 长整数或双精度浮点数

以上是关于printf的主要内容,如果未能解决你的问题,请参考以下文章

Java中printprintf和println的区别

随堂练习 文本处理三剑客 AWK

linux 操作系统下能用fprintf() 及fscanf()等函数吗?它们与c语言中的用法一样吗?