项目终于进行到了通讯的部分,用的是有人的GM5模块,虽属于简单模块,但要真架接到rt-thread中间还是遇到些坑,一个个都解决了,事后总结还是没仔细看《编程指南》,要是真搞明白里面所说的,应该也走不了这么多的弯路。在rt-thread中提到一个sscanf(),这个是在没接触之前,没接触过的函数,有什么用呢?如下图:
sscanf(): 从字符串中读取指定格式的数据
sscanf()函数用于从字符串中读取指定格式的数据,其原型如下:
| 1 |
|
【参数】参数str为要读取数据的字符串;format为用户指定的格式;argument为变量,用来保存读取到的数据。
【返回值】成功则返回参数数目,失败则返回-1,错误原因存于errno 中。
sscanf()会将参数str 的字符串根据参数format(格式化字符串)来转换并格式化数据(格式化字符串请参考scanf()), 转换后的结果存于对应的变量中。
sscanf()与scanf()类似,都是用于输入的,只是scanf()以键盘(stdin)为输入源,sscanf()以固定字符串为输入源。
其中的format可以是一个或多个{%[*][width][size]type |' '|'\t'|'\n'|非%符号}
%:代表要读入一个字符集
注:
1、*亦可用于格式中,(即%*d 和%*s)加了星号(*)表示跳过此数据不读入.(也就是不把此数据读入参数中)
2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
3、width表示读取宽度。
4、参数的size:常用的有hh表示单字节size,h表示2字节 size,其他详见man ss
sscanf函数详解与应用

本文深入解析sscanf函数的功能与使用方法,包括从字符串读取指定格式数据的原理,参数解释,返回值说明,以及各种类型和控制字符的详细说明。通过多个实例演示了如何利用sscanf进行字符串解析,涵盖了基本用法、指定长度读取、特定字符终止读取等高级技巧。
最低0.47元/天 解锁文章
64

被折叠的 条评论
为什么被折叠?



