printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义
函数的原型是
extern int printf(const char *format,...);
printf输出都是以字符形式表达,若要直接输出十六进制或十进制数,则需要直接使用UART_Send()函数来输出。
printf的输出格式:%[flags][width][.prec][F|N|h|l]type
printf("%f",i);//输出单精度浮点数
printf("%lf",i);//输出双精度浮点数
printf("%d",i);//输出整数
printf("%x",i);//输出十六进制数,小写形式
printf("%X",i);//输出十六进制数,大写形式
printf("%s",*p);//输出字符串
printf("%o",i);//输出八进制数
printf("%c",i);//输出字符型数据
printf("%p",i);//以十六进制输出指针
printf("%e",i);//输出科学计数法数据
flags:
字符
| 字符名称 | 说明 |
- | 减号 | 左对齐,右边填充空格(默认右对齐) |
+
| 加号 | 在数字前增加符号 + 或 - |
0
| 数字零 | 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”) |
空格 | 输出值为正时加上空格,为负时加上负号 | |
#
| 井号 |
type是o、x、X时,增加前缀0、0x、0X
type是e、E、f、g、G时,一定使用小数点
type是g、G时,尾部的0保留
|
width:
用于控制显示数值的宽度,取值和含义如下:
n(n=1,2,3,4,5,6...): 宽度至少为n位,不够以空格填充。
* 格式列表中,下一个参数还是width
width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。
n(n=1,2,3,4,5,6...): 宽度至少为n位,不够以空格填充。
* 格式列表中,下一个参数还是width
width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。
prec:
用于控制小数点后面的位数,取值和含义如下:
无按缺省精度显示0
当type=d,i,o,u,x时,没有影响;
type=e,E,f时,不显示小数点
n(n=1,2,3...)
当type=e,E,f时表示的最大小数位数;
type=其他,表示显示的最大宽度
prec是指可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:
* d、o、i、 u、x 或 X 转换的最少数字显示位数。
* e 和 f 转换的基数字符后的最少数字显示位数。
* g 转换的最大有效数字位数。
* s 转换中字符串的最大打印字节数目。
用于控制小数点后面的位数,取值和含义如下:
无按缺省精度显示0
当type=d,i,o,u,x时,没有影响;
type=e,E,f时,不显示小数点
n(n=1,2,3...)
当type=e,E,f时表示的最大小数位数;
type=其他,表示显示的最大宽度
prec是指可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:
* d、o、i、 u、x 或 X 转换的最少数字显示位数。
* e 和 f 转换的基数字符后的最少数字显示位数。
* g 转换的最大有效数字位数。
* s 转换中字符串的最大打印字节数目。
转义序列:
这些转义序列在字符串中会被自动转换为相应操作命令
这些转义序列在字符串中会被自动转换为相应操作命令
符号
|
意义
|
符号
|
意义
|
\a
|
铃声(提醒)
|
\b
|
Backspace
|
\f
|
换页
|
\n
|
换行
|
\r
|
回车
|
\t
|
水平制表符
|
\v
|
垂直制表符
|
\’
|
单引号
|
\”
|
双引号
|
\\
|
反斜杠
|
\?
|
文本问号
|
\ ooo (例如\024)
|
ASCII字符(OCX)
|
\xhh (例如:\x20)
|
ASCII字符(HEX)
|
\xhhhh
|
宽字符(2字节HEX)
|