c语言操作注意事项
库函数-sscanf (const char *, const char *, …);
sscanf (const char *, const char *, ...);
主要是用于格式化获取字符串中的数据,
比如获取字符串+CIPGSMLOC: 0,22.6805522,113.9864134,2024/05/20,19:35:19
中各个数据,
int locationcode;
floatlbs_latitude;
float lbs_longitude;
int date_year;
int date_month;
int date_day;
int time_hour;
int time_minute;
int time_second;
sscanf((char *)ret, "+CIPGSMLOC: %d,%f,%f,%d/%d/%d,%d:%d:%d\r\n", &locationcode, &lbs_latitude, &lbs_longitude,
&date_year, &date_month, &date_day, &time_hour, &time_minute, &time_second);
如果取数据的缓存变量是结构体中的成员,比如
typedef struct
{
char imei[25];
char iccid[25];
char revision[30];
int rssi_raw;
int band;
uint8_t psm_flag;
uint8_t send_mode;
float lbs_latitude;
float lbs_longitude;
uint32_t proccess_time;
}lteParams_ts;
int locationcode;
int date_year;
int date_month;
int date_day;
int time_hour;
int time_minute;
int time_second;
sscanf((char *)ret, "+CIPGSMLOC: %d,%f,%f,%d/%d/%d,%d:%d:%d\r\n", &locationcode, <eParams.lbs_latitude, <eParams.lbs_longitude,
&date_year, &date_month, &date_day, &time_hour, &time_minute, &time_second);
这时的结构体类型定义不能加#pragma pack(n)
来设置1个字节对齐,即不能设置为#pragma pack(1)
这样操作有可能会造成内存溢出,报硬件中断。
原文地址:https://blog.csdn.net/dropLin/article/details/139073287
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!