C++读取配置文件的写法
记录一下读配置文件的写法。
读取配置文件可以利用string类提供的字符查找和分割来实现。
配置文件中的内容形式为:
filepath=/home/test/data/
string ConfigFileRead() {ifstream configFile;string path = "../conf/setting.conf";configFile.open(path.c_str());string strLine;string filepath;if(configFile.is_open()){while (!configFile.eof()){getline(configFile, strLine);size_t pos = strLine.find('=');string key = strLine.substr(0, pos);if(key == "filepath"){filepath = strLine.substr(pos + 1); } }}else{cout << "Cannot open config file!" << endl;}return filepath; }
如果需要配置的内容较多,可以考虑先把读到的信息存到map中,需要的时候利用map中的find方法获取key对应的value。
配置文件中可以包含以#开头的注释信息,读的时候可以把它过滤掉。配置文件内容例如:
#读入文件路径
path=/home/test/data/
void ConfigFileRead( map<string, string>& m_mapConfigInfo ) {ifstream configFile;string path = "../conf/setting.conf";configFile.open(path.c_str());string str_line;if (configFile.is_open()){while (!configFile.eof()){getline(configFile, str_line);if ( str_line.find('#') == 0 ) //过滤掉注释信息,即如果首个字符为#就过滤掉这一行 {continue;} size_t pos = str_line.find('=');string str_key = str_line.substr(0, pos);string str_value = str_line.substr(pos + 1);m_mapConfigInfo.insert(pair<string, string>(str_key, str_value));}}else{ cout << "Cannot open config file setting.ini, path: ";exit(-1);} }
需要获取配置信息的时候可以通过:
map<string, string>::iterator iter_configMap;iter_configMap = m_mapConfigInfo.find("path");m_strBaseInputPath = iter_configMap->second;
-------------------------------------------------------------------------------------------------------------
补充:
后面用CPPcheck检查代码的时候发现提示.find() 函数的效率不高,建议改为.compare(),即:
if ( str_line.compare(0, 1, "#") == 0 ){continue;}
这段代码是比较字符串,从第0个位置开始比较一个字符,即比较第一个字符是不是"#", 如果相等,返回0,大于返回1,小于返回-1。实现的功能和以前是一致的,但是效率会更高一些。
转载于:https://www.cnblogs.com/philipce/p/6617215.html
C++读取配置文件的写法相关推荐
- python -- configparse读取配置文件
在开发过程中,有的时候需要将一些参数写入到配置文件中,这样在改动一些相关信息时,可以直接在配置文件中进行修改. 而在python中,可以通过内置模块configparse对标准的配置文件进行读取. 配 ...
- 读取 配置文件_自动化测试中,如何读取配置文件内容?
构建测试知识体系,欢迎关注 " 自动化中的配置信息,比如域名.数据库信息.kafka信息等,通常是放到配置文件中的.那么如何读取配置文件中的信息呢?" 自动化测试代码中,像请求域名 ...
- SCPPO(二十二):读取配置文件---程序猿必不可少的技能
[前言] 现在在做一个.Net项目,在做项目的时候用到了读取配置文件:无巧不成书,最近在自己学习Java,刚好也学到了读取配置文件这块儿,于是乎整理了整理读取配置文件的方式. [那点事] 一.我 ...
- python读取配置文件-configparser
一:首先在包目录下创建文件夹:config config下创建test.conf文件 [section1] #节点 name = tank #k = v age = 28[payload] page ...
- Golang库 - viper读取配置文件
/ 前言 / viper是由Steve Francia编写的开源配置解决方案, 也是cobra的作者, 我们来看下viper的功能 支持JSON.TOML.YAML/YML.PROPERTIES.EN ...
- 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件
原生java读取properties与spring中@value.@ConfigurationProperties读取配置文件 1.properties类 Properties 继承于 Hashtab ...
- python读取配置文件-python 配置文件读写
@(python) [TOC] 前言 将代码中的配置项抽取到配置文件中,修改配置时不需要涉及到代码修改,避免面对一堆令人抓狂的 magic number,极大的方便后期软件的维护. python 本身 ...
- spring中读取配置文件的方式,以及配置文件如何写
application.properties spring.application.name=spring-boot-simple-study server.port=8080 application ...
- python 读取配置文件,报错configparser.NoSectionError: No section 解决方案
configparser简要介绍 python的配置文件,将代码中的配置项抽取到配置文件中,修改配置时不需要涉及到代码修改,方便以后修改参数,极大的方便后期软件的维护.一般配置文件为config.in ...
最新文章
- fputc会覆盖吗_深覆盖 VS 深覆合如何区分?这一篇看完就都明白了!
- css3个性loading,css3 中实现炫酷的loading效果
- 猜数字游戏python程序_python经典小程序:猜数字游戏
- pandownload用户未登录_Pandownload再度复活,下载速度飙升到10MB/s以上
- Oracle学习 第26天 Toad试用感受
- asp网站服务器软件,asp服务器软件
- JSON Perl
- java低层源码_Java线程池及其底层源码实现分析
- WPF MVVM模式 发送DataGird表格的数据到另一个页面显示
- ehcache入门基础示例
- swig: 未找到命令
- EXCEL VBA常用代码集
- 【python学习笔记】Python的六种内置对象
- 计算机网络公网ip,怎么查看电脑的公网IP地址
- 一天一个小算法——最小生成树(kru Prm)
- matlab2018a调用python
- Windows 2003安全设置大全----2003系统错误大全解释
- 小米社招java面经_小米Java实习一面面经(凉)
- idea 制作maven脚手架_开发一个maven脚手架
- 高级开发人员可以向初学者学习的内容
热门文章
- Java并发编程实战 第4章 对象的组合
- POJ3265 Problem Solving ——动态规划——Pku3265
- 虚拟化概念和KVM简述
- feign一个接口多个方法_spring cloud 建一个服务消费者client-feign(最好用这种方式)...
- python语言的类型是_Python语言类型
- python 真多线程_Python之路200个小例子,在线网页版来了,从此学习更方便!
- 小翔和泰拉瑞亚(线段树+思维)
- write up web:网站被黑
- ospf 环回口的路由条目_【网络工程师配置篇】——OSPF汇总配置!
- FlinkX 如何读取和写入 Clickhouse?