zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    通过wireshark抓包来讲解HTTP中Connection: keep-alive头部的作用
    spring cloud连载第三篇补充之Zuul
    Redis管理各类型存储数据命令
    Redis管理key命令
    Redis命令
    Redis数据类型
    Redis配置文件
    Redis安装
    Redis简介
    SpringBoot项目报错Cannot determine embedded database driver class for database type NONE
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/10310537.html
Copyright © 2011-2022 走看看