解析文件或者字符串,一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\n",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>

C++之map使用的更多相关文章

  1. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  2. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  3. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. 多用多学之Java中的Set,List,Map

            很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...

  6. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  7. MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析

    在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...

  8. MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程

    在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...

  9. MapReduce剖析笔记之五:Map与Reduce任务分配过程

    在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...

  10. MapReduce剖析笔记之三:Job的Map/Reduce Task初始化

    上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...

随机推荐

  1. 本地存储数据库indexedDB实现离线预览的功能

    今天在学习<高级JS编程>,看到离线存储,cookie和session都十分的熟悉,但是书中还提到了indexedDB和webSQL(已废弃),indexedDB可以像mysql一样建表, ...

  2. JQZoom

    UI采用jQuery插件 习惯网购的朋友都深有体会.大部分皇冠级淘宝卖家都是图片控.京东商城的放大图效果也是吸引消费者的法宝之一.京东商城产品展示页支持多图切换并放大代码,放大功能的核心代码为jQzo ...

  3. 【BZOJ3809/3236】Gty的二逼妹子序列 [Ahoi2013]作业 莫队算法+分块

    [BZOJ3809]Gty的二逼妹子序列 Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b ...

  4. 《从零开始学Swift》学习笔记(Day 64)——Cocoa Touch设计模式及应用之目标与动作

    原创文章,欢迎转载.转载请注明:关东升的博客 目标(Target)与动作(Action)是iOS和OS X应用开发的中事件处理机制.   问题提出 如图所示是一个ButtonLabelSample案例 ...

  5. 获取ScrollView的onScrollListener

    scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() { @Overrid ...

  6. java中Logger.getLogger(Test.class),即log4日志的使用

    log4的使用方法: log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测有两种配置方式:一种程序配置,一种文件配置有三个主要单元要了解,Logger,appender,layout. l ...

  7. [算法][LeetCode]Single Number——异或运算的巧妙运用

    题目要求 Given an array of integers, every element appears twice except for one. Find that single one. N ...

  8. Groovy基本句法

    Groovy基本句法 Gradle作为一个构建工具自然不会自己去创造一门语言来支撑自己,那么它用的是哪门子语言呢?什么语言能写成这样: task hello { doLast { println 'H ...

  9. 修改Android模拟器的system分区,以及加入SuperSU

      http://www.claudxiao.net/2013/10/persistent-change-emulator-system-partition/ 对Android的模拟器,如果要修改其s ...

  10. jquery的强大选择器

    $("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("di ...