`
fantaxy025025
  • 浏览: 1327518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

【cpp】c++读取文件入key-value结构的map中并使用--代码

 
阅读更多

=

现在的网络环境已经摒弃了前些年宣传的美好,进入了比拼下线的时间。

 

把美好撕碎了,才能看见真实。

 

这个时刻才发现,天下文章一大抄也比没了强。

=

【cpp】c++读取文件入key-value结构的map中并使用--代码

 

 

#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include<utility>
#include<vector>
#include<cstring>

using namespace std;
//分割字符串
vector<string> split(const string& str, const string& delim) {
	vector<string> res;
	if ("" == str) return res;
	//先将要切割的字符串从string类型转换为char*类型
	char * strs = new char[str.length() + 1];
	strcpy(strs, str.c_str());

	char * d = new char[delim.length() + 1];
	strcpy(d, delim.c_str());

	char *p = strtok(strs, d);
	while (p) {
		string s = p;  //分割得到的字符串转换为string类型
		res.push_back(s); //存入结果数组
		p = strtok(NULL, d);
	}
	return res;
}

int test_read() {
	//根据key从文件中读出相应的value
	map<string, string> myMap;
	ifstream ous("text.txt");
	while (!ous.eof()) {
		string temp;
		ous >> temp;
		vector<string> tempstr = split(temp, "=");
		//        for(int i=0;i<tempstr.size(); i++){
		//        }
		string key = tempstr[0].c_str();
		string value = tempstr[1].c_str();
		myMap.insert(make_pair(key, value)); //将字符串转换为键值对
	}
	for (map<string, string>::iterator itr = myMap.begin(); itr != myMap.end(); itr++) {
		cout << itr->second << endl; //
	}
	return 0;
}

int main() {
	cout << "hello world." << endl;

	test_read();
}

 

 

测试例子:

你=69
再见=40
小娜=76
小通=76
好佩服你啊=71
加油=64
我很高兴=80
欢迎你的到来=56
你真厉害=71
查询不到=70
说点别的=70

 

编译报错了:

C4996    'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 

解决方法:

  1. 将原来所有的函数名全部改成微软改写后的函数名。
  2. 在解决方案资源管理器中····>    项目属性····>   c/c++····>   预处理器中选择,预处理定义,在其中加入宏定义:_CRT_SECURE_NO_WARNINGS

 

=

=

=

 

分享到:
评论

相关推荐

    c++版yaml库yaml-cpp

    **C++版YAML库yaml-cpp** yaml-cpp是一个用C++编写的开源库,专为解析、生成YAML格式的数据而设计。...通过理解和熟练使用yaml-cpp库,你可以提高代码的可读性,简化配置管理,并实现与其他YAML兼容系统的数据交换。

    c++读取配置文件

    本教程将详细讲解如何使用C++读取配置文件,特别是针对TXT格式的文件,因为它们简单且易于理解和编辑。 1. **基本概念** - **配置文件**:配置文件通常存储应用程序的设置,如数据库连接字符串、用户首选项或系统...

    C++读写ini配置文件

    本文将深入探讨如何使用C++来读写ini配置文件,主要参考提供的"rwconfig.cpp"和"rwconfig.h"源代码。 首先,我们需要了解ini文件的基本结构。它由一系列节(Section)组成,每个节内包含若干键值对(Key-Value ...

    c++读取ini文件封装类

    在C++编程中,处理配置文件是常见的任务,而INI文件由于其简洁的结构和易于理解的格式,常被用于存储应用程序的配置信息。本文将详细介绍如何使用C++封装一个读取INI文件的类,以及相关的核心知识点。 首先,我们...

    CSV、Map文件读取和处理

    Map数据结构在C++中由`&lt;map&gt;`库提供,它是一个关联容器,可以将键(Key)映射到值(Value)。在这个项目中,Map可能被用来存储参数名称与对应的内存地址,以便快速查找和访问。Map的插入和访问操作如下: ```cpp #...

    C++配置文件读取

    本篇文章将深入探讨在Visual C++ 2010环境下,如何使用纯C++代码实现配置文件的读取与写入。 1. 文件I/O基础 在C++中,我们主要通过标准库中的`fstream`类来处理文件输入输出。`ifstream`用于读取文件,`ofstream`...

    c++读取配置文件.ini文件.rar

    `c++读取配置文件.ini文件.rar`这个压缩包包含了一些关键文件,它们展示了如何在C++中读取和操作`.ini`文件。这些文件包括: 1. **RrConfig.cpp**:这是实现配置文件读取功能的主要源代码文件,它包含了读取和解析`...

    ubuntu系统读取ini配置文件

    本模块提供了一种在Ubuntu环境下使用C++读取INI配置文件的方法,使得开发者能方便地获取和修改配置信息。以下是关于这个功能模块的关键知识点和实现细节: 1. **INI文件格式**:INI文件是一种简单的文本格式,通常...

    file_map.zip_C++map_C++文件映射_MAP文件_内存_内存映射文件

    总的来说,这个压缩包中的文件可能包含了一个关于如何在C++中使用`map`数据结构和内存映射文件的实例教程或项目,通过这些源代码,我们可以学习到如何在实际应用中有效地管理和操作这两种关键的资源。

    Linux Windows C++读写ini文件

    ini文件结构** ini文件通常由节(section)和键值对(key-value pairs)组成。每个节以方括号`[]`包裹,键值对则以等号`=`分隔,例如: ```ini [Section1] Key1=Value1 Key2=Value2 [Section2] Key3=Value3 ``` **...

    C++读取ini文件.rar

    在C++编程中,处理配置文件是常见的任务之一,而INI文件因其简洁的结构和易于解析的特性,常被用于存储应用程序的设置和配置。本文将深入探讨如何使用C++来读取和写入INI文件。 INI文件是一种文本格式,通常包含一...

    c++读写in文件封装类

    1. **INI文件结构**: INI文件由多个节(Section)组成,每个节内包含若干键值对(Key-Value Pairs)。例如: ``` [Section1] Key1=Value1 Key2=Value2 [Section2] Key3=Value3 ``` 2. **Windows API...

    C++简单的配置文件读取调用源码

    通过这种方式,我们可以轻松地在C++程序中读取和使用配置文件,使得代码更加灵活,适应不同的运行环境。在这个示例中,我们使用了基本的文本处理来解析配置文件,对于更复杂的配置格式,可以考虑使用如Boost....

    C++通用的文件配置类

    在C++中,我们可以使用`fstream`库来处理文件的读写操作,`std::map`或`std::unordered_map`作为存储配置项的数据结构,以支持键值对的快速查找。下面是一个简单的类设计: ```cpp #include #include &lt;map&gt; #...

    ini文件解析

    1. ini文件结构: ini文件通常包含多个节(Section),每个节下面有若干键值对(Key-Value Pairs)。节以方括号`[]`包裹,如`[SectionName]`;键值对则由等号`=`分隔,如`Key=Value`。例如: ``` [Section1] Key...

    (C++)配置文件处理 辅助程序

    在C++编程中,处理配置文件是常见的任务,特别是在开发应用程序时需要读取或写入用户设置、系统参数等信息。配置文件通常是简单的文本文件,如INI格式,它以键值对的形式存储数据,易于理解和操作。在这个场景下,...

    ini读取类,使用C++STL

    标题中的“ini读取类,使用C++STL”指的是使用C++标准模板库(Standard Template Library, STL)来设计和实现一个能够读取和操作.ini配置文件的类。.ini文件是一种常见的文本配置文件格式,常用于存储软件的设置和...

    ini配置读写C++源码

    1. ini文件结构: ini文件由多个节(Section)组成,每个节包含一组键值对(Key-Value Pairs)。节以方括号`[]`包裹,如`[SectionName]`。键值对以等号`=`分隔,如`Key=Value`。 2. C++处理ini文件的方法: - ...

    ini文件解析c++类

    1. **ini文件结构**:ini文件由节(section)、键(key)和值(value)组成。每个节以`[Section Name]`开始,键值对以`Key=Value`的形式存在。多个节可以存在于同一个文件中,不同节的键可以相同。 2. **解析方法**...

    linux/Win32下读写ini文件的c++类

    本篇将详细介绍如何在Linux和Windows环境下,使用C++编写一个类来读写ini文件,并支持字符串、整型和浮点数这三种数据类型的存储。 ### 1. INI文件结构 INI文件通常包含多个节(section),每个节内有若干键值对...

Global site tag (gtag.js) - Google Analytics