千家信息网

C++特殊符号tab和换行符号的使用方法

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇文章为大家展示了C++特殊符号tab和换行符号的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言:我们经常会遇到一些Linux内核信息需要,比如
千家信息网最后更新 2025年01月18日C++特殊符号tab和换行符号的使用方法

本篇文章为大家展示了C++特殊符号tab和换行符号的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    前言:

    我们经常会遇到一些Linux内核信息需要,比如一个wifi数据,中间是用tab键盘隔开的,然后每一行用换行符进行区分,如下所示的数据

    第一位置是:wifi名称 第二个位置是:信号强度 第三个位置是:信号类型2.4Ghz或者5Ghz 第四个位置是:加密类型 第五个类型是:MAC地址

    遇到这样的数据,我们比较常见的C函数解析是用while循环去匹配字符串里面的'\t'(tab键),'\n'(换行符号)等,然后用C标准库里面str函数,例如strncpy进行复制或者strstr去查找,类似于下面所示:

    int i, j ;    i = 0;    j = strlen(strIn) - 1;    while(strIn[i] == ' ' || strIn[i] == '\t')            ++i;    while(strIn[j] == ' ' || strIn[j] == '\t')            --j;    strncpy(strOut, strIn + i , j - i + 1);

    那么我们怎么用C++解析呢,最近刚好解析了部分wifi信息,所以给大家分享哈这部分。

    解析代码:

    对应上面的wifi信息的表,我们看到了一行有五个数据,这时候打包收到了一个string类型的wifi信息。

    我们应该注意三件事情:

    1. 我们先确认好解析的范围,即知道最开始一位和最后一位,设置好recivemsg.beginrecivemsg.

    2. 进行识别tab符号和换行符号之后进行分段

    3. 把分好的数据塞到一个vector容器里面,然后因为每一行都有五个数据,所以我们就可以按照0~5一组的数据进行分发给各处。

    实际代码如下:

    vector Parse_Wifi_List(string& msg){        vector words;        if(msg.empty())            return words;        string::iterator temp_p = msg.begin();        string sepword;        bool bit_true = false;        while(temp_p != msg.end())        {            if(/* * temp_p == ' ' || */  * temp_p == '\t' || * temp_p == '\n')            {                if(bit_true)                {                    words.push_back(sepword);                    PP_INFO("seword :%s",sepword.c_str());                    sepword.clear();                }                   bit_true = false;                temp_p++;                continue;            }            else            {                bit_true = true;                sepword += *temp_p;            }            if(*temp_p ++ == '\0')            {                break;            }            // else            // {            //  PP_INFO("%d %d %c",msg.end(),*temp_p,*temp_p);            // }        }        // for(auto point : words)        // {        //  printf(".%s\n",point.c_str());        // }      //for(uint16_t i =0;i

    使用此代码解析LOG如下:

    上述内容就是C++特殊符号tab和换行符号的使用方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

    0