`
fantaxy025025
  • 浏览: 1247622 次
  • 性别: 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

 

=

=

=

 

分享到:
评论

相关推荐

    Dev-Cpp-5.16d.exe

    Dev-C++ (或者叫做 Dev-Cpp)是 Windows 环境下的一个用于 C 语言和 C++ 语言程序设计的轻量级免费集成开发环境。 它集成了 SynEdit 源码编辑器、MinGW-w64 编译器、GDB 调试器和 AStyle 格式整理器等众多自由软件...

    爱心代码.cpp 使用C++实现的代码

    爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++实现的代码爱心代码.cpp 使用C++...

    aws-sdk-cpp-1.11.4(x86-windows)

    2,压缩包中是从github下载的aws-sdk-cpp-1.11.4编译后的可安装二次开发包,windows x86版本,包含以下内容: aws-cpp-sdk-core.dll(和其余dll) aws-cpp-sdk-core.lib (和其余lib) \include\aws(sdk头文件) 3...

    abseil-cpp 最新源代码

    abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp 最新源代码abseil-cpp ...

    C++读取二进制文件

    读二进制文件,支持随机读取额,需要事先知道数据结构,欢迎使用

    zxing-cpp-master.zip

    # ZXing C++ Port zxing-cpp-master\cli zxing-cpp-master\cmake zxing-cpp-master\core zxing-cpp-master\opencv zxing-cpp-master\opencv-cli zxing-cpp-master\.gitignore zxing-cpp-master\README.md ...

    C++读取html内容

    C++读取html内容,支持HTTPS,只包含cpp,h文件,可以应用到任何C++项目经理

    eclipse-cpp-juno-SR2-linux-gtk.tar.gz

    eclipse-cpp-juno-SR2-linux-gtk eclipse 4.2 c/c++开发

    冒泡9.cpp 使用C++实现的代码

    冒泡排序pta 冒泡9.cpp 使用C++实现的代码 冒泡9.cpp 使用C++实现的...冒泡9.cpp 使用C++实现的代码冒泡9.cpp 使用C++实现的代码冒泡9.cpp 使用C++实现的代码冒泡9.cpp 使用C++实现的代码冒泡9.cpp 使用C++实现的代码

    cpp-stub 中文使用手册

    单元测试打桩开源库 cpp-stub 使用手册 中文版本,这是从git上直接下载的,git上下载的源代码在arm上调用Stub.reset方法会引发段错误,在资源cpp-stub开源代码(下载地址:...

    eclipse-cpp-oxygen-3a-linux-gtk-x86_64.tar.gz

    linux 64位下的eclipse c/c++ 开发工具 “Eclipse IDE for C/C++ Developers”可以配合 arm-linux-gcc 和 jre在linux中搭建集成开发环境

    C++实现逐行读取TXT文件的内容,并将指定的内容输出来

    C++实现读取TXT文件里面的内容,一行一行的读取,并自动换行,自动将指定的内容读取出来或是输出到界面显示

    Dev-Cpp 5.4.2 MinGW 4.7.2 32位版本 32bit IDE C++编程工具 ORWELL c++ 2013年6月更新

    Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW等众多自由软件,并且可以取得最新版本的各种工具支持,而这一切工作都是来自全球的狂热者所做的...

    堆排序10.cpp 还是使用C++代码实现的

    堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码实现的堆排序10.cpp 还是使用C++代码...

    Dev-Cpp 5.11版本(Dev-c++)安装包

    Dev-Cpp 5.11同(Dev-c++); Dev-C++和Dev-Cpp是一个东西; 2020年5月最新版 内附安装说明; 官网下载速度你懂得;

    C++之贪吃蛇.cpp--C语言小游戏详解—贪吃蛇

    C++之贪吃蛇.cpp--C语言小游戏详解—贪吃蛇,方向键对应的的ASCII为 72,经典小游戏大集合(C 源码)

    activemq-cpp-library-3.9.5 编译的windows库文件,支持vs2015、vs2017

    activemq-cpp-library-3.9.5编译的C++库文件,支持vs2015,vs2017,包括了依赖的库文件和头文件,可以在项目中直接使用。

    eclipse-cpp-2021-09-R-linux-gtk-x86_64.tar.gz

    Eclipse IDE for C/C++ Developers (eclipse-cpp-2021-09-R-linux-gtk-x86_64.tar.gz)适用于Linux x86_64系统

    eclipse-cpp-2021-12-R-linux-gtk-x86_64.tar.gz

    Eclipse IDE for C/C++ Developers (eclipse-cpp-2021-12-R-linux-gtk-x86_64.tar.gz)适用于Linux x86_64系统

    VS2017编译通过的aws-sdk-cpp工程代码

    aws-sdk-cpp 1.9.26 C++ SDK 附带生成好的vs2017解决方案和工程文件,使用有问题请留言

Global site tag (gtag.js) - Google Analytics