当前位置: 代码迷 >> 综合 >> linuxC - sscanf() 函数使用
  详细解决方案

linuxC - sscanf() 函数使用

热度:63   发布时间:2024-01-20 09:04:45.0

文章目录

  • linuxC - sscanf() 函数使用
    • 参数
    • 返回值
    • 举例

linuxC - sscanf() 函数使用

int sscanf(const char *str, const char *format, ...)

参数

  • 参数str为要读取数据的字符串;format为用户指定的格式;… 为变量,用来保存读取到的数据

返回值

成功则返回参数数目,失败则返回-1,错误原因存于errno 中。

  • sscanf()会将参数str 的字符串根据参数format(格式化字符串)来转换并格式化数据(格式化字符串请参考scanf()), 转换后的结果存于对应的变量中。
  • sscanf()与scanf()类似,都是用于输入的,只是scanf()以键盘(stdin)为输入源,sscanf()以固定字符串为输入源。

举例

从指定的字符串中读取Mac地址

 if(net_param_get(g_sysconfig.net_type, 3, netvalue)) {
    uint32_t tmp[6] = {
    0};sscanf(netvalue, "%x:%x:%x:%x:%x:%x", &tmp[0], &tmp[1], &tmp[2], &tmp[3], &tmp[4], &tmp[5]);g_sysconfig.mac_addr[0] = tmp[0];g_sysconfig.mac_addr[1] = tmp[1];g_sysconfig.mac_addr[2] = tmp[2];g_sysconfig.mac_addr[3] = tmp[3];g_sysconfig.mac_addr[4] = tmp[4];g_sysconfig.mac_addr[5] = tmp[5];}