sprintf函数
字符串格式化函数 sprintf主要功能把格式化的数据写在某个字符串中,使用sprintf时经常出问题,需要格外注意。
sprintf 是个变参函数 ,该函数包含在stdio.h的头文件中,使用时需导入这个头文件。
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。
sprintf 最常见的应用之一莫过于把整数打印到字符串中,sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
%8d表示数据位宽为8位。%d表示按照有符号十进制整数输出,如果数据长度>=8则按照原来的数据位宽输出,如果<8则用空格填充,默认右对齐。
负号表示左对齐,如果不够八位的情况下,左对齐右侧补上空格。
%lf 双精浮点型,也就是double型的格式,默认度保留6位小数。%.2lf 同上,不过限制了,值保留道2位小数。
%5.2f指定以小数形式输出(输入)浮点型数据,数据宽度为5,保留小数点后两位
串口重写
轮询形式的串口重定向到printf
printf函数会调用底层的fputc这个函数,去一个个地打印出字符;所以,我们只要将fputc函数实现,就可以使用printf函数方便地输出,其实质就是把串口发送一个字符的函数,封装到了fputc函数