printf可以打印字符串,打印变量,使用时方便简单,但需要掌握一些规则。这里对遇到的一些使用情况做一下备注解析:
printf()函数的调用格式为:printf("格式化字符串",输出表列)
。
格式化字符串包含三种对象,分别为:
(1)字符串常量;(字符串常量原样输出,在显示中起提示作用。)
(2)格式控制字符串;(输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。)
(3)转义字符。(\n 换行;\r回车、、、、)
printf的格式控制字符串组成如下:
%[标志][最小宽度][.精度][类型长度]类型。
标志(flags)包含:“-”(左对齐)、“+”(输出正负号)、“0”(将输出的前面补上0,直到占满指定列宽为止)、、、、
最小宽度(width):用十进制整数来表示输出的最少位数。若实际位数多于指定的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(最小宽度包含小数点和小数位数)。
精度(.precision): 精度格式符以“.”开头,后跟十进制整数。对于浮点数.8f则代表小数点后8位小数。
类型长度(length):长度格式符为 h,l 两种,h 表示按短整型量输出,l 表示按长整型量输出。
类型(type):(进行部分注解)d/i都表示十进制整形,f代表float类型,%代表百分号本身、、、
好了举个实例,也是做这个整理的起源:
printf("theta: %03.2f Dist: %08.2f \r\n",RPlidar_Body_Data[iii].angle,RPlidar_Body_Data[iii].distance);
代表输出theta的最小宽度是3位,如果小于3位前面补0,小数点后面2位;
Dist最小宽度是8位,如果小于8位前面补0,小数点后面2位。
参考网址:https://blog.youkuaiyun.com/yss28/article/details/53538063
更详细的参考网址:https://blog.youkuaiyun.com/K346K346/article/details/52252626