• C++之map使用


    解析文件或者字符串,一key跟keyvalue来存在map中,如下代码:

    test.h:

    #include <map>
    #include <vector>

    Class test

    {

    public:

    void list_Map();

    private:

    map<string,string> pensonnel;
    map<string,string>::iterator iter;

    }

    test.cpp:

    void test::list_Map()

    {

    ifstream infile;
    infile.open("D:\XX.dpi");
    char buffer[1024]={0};
    int i=0;
    int chang_first=0;
    int chang_last=0;
    int value_first=0;
    int value_last=0;
    char key_tag[10]={0};
    char value_tag[1024]={0};
    if (!infile)
    {
    return false;

    }
    while (!infile.eof() )
    {
    infile.getline (buffer,1024);

    i = StringFind(buffer,"Name");

    if(i!=-1)
    {
    chang_first = StringFind(buffer,""");
    chang_last = StringFind(buffer,"Length");
    memcpy(key_tag,buffer+chang_first+1,chang_last-2-chang_first-1);
    value_first = StringFind(buffer,"">");
    value_last = StringFind(buffer,"</DGI>");
    memcpy(value_tag,buffer+value_first+2,value_last-2-value_first);
    string key_string(key_tag);
    string value_string(value_tag);
    cout<<"insert:"<<key_string<<","<<value_string<<endl;
    pensonnel.insert(pair<string, string>(key_string, value_string));

    }

    }
    printf("mapsize=%d ",pensonnel.size());

    for(iter=pensonnel.begin();iter !=pensonnel.end();iter++)
    {
    cout<<i<<":"<<iter->first<<", "<<iter->second<<endl;
    }

    }

    其中文件XX.dpi内容为:

    <?xml version="1.0" encoding="GBK" ?>
    <PersoFile>
    <CardCounter>5</CardCounter>
    <Version>1</Version>
    <CardType>0001</CardType>
    <Reserve></Reserve>
    <CardData>

    <AID Length="8">A000000632010105</AID>

    <DGI Name="0015" Length="30">02195510FFFFFFFF02000310482000000000080120180704202807040101</DGI>
    <DGI Name="0016" Length="55">00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</DGI>
    <DGI Name="0017" Length="60">000001565500551000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</DGI>

    <Print Type="PAN">310482 00 0000000080 5</Print>
    <Print Type="ExpDate">07/18</Print>
    <Print Type="EffDate">07/28</Print>

    </CardData>

    </PersoFile>

  • 相关阅读:
    Manacher-模版题poj3974 hdu3068
    拓展kmp(带注释版)
    颓の第17周
    php 递归遍历目录带缩进
    php 递归遍历目录
    php session
    apache主机配置
    php环境配置的检测方法
    php 变量
    php MVC
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/10310537.html
Copyright © 2020-2023  润新知