记录一下读配置文件的写法。

读取配置文件可以利用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++读取配置文件的写法相关推荐

  1. python -- configparse读取配置文件

    在开发过程中,有的时候需要将一些参数写入到配置文件中,这样在改动一些相关信息时,可以直接在配置文件中进行修改. 而在python中,可以通过内置模块configparse对标准的配置文件进行读取. 配 ...

  2. 读取 配置文件_自动化测试中,如何读取配置文件内容?

    构建测试知识体系,欢迎关注 " 自动化中的配置信息,比如域名.数据库信息.kafka信息等,通常是放到配置文件中的.那么如何读取配置文件中的信息呢?" 自动化测试代码中,像请求域名 ...

  3. SCPPO(二十二):读取配置文件---程序猿必不可少的技能

    [前言] 现在在做一个.Net项目,在做项目的时候用到了读取配置文件:无巧不成书,最近在自己学习Java,刚好也学到了读取配置文件这块儿,于是乎整理了整理读取配置文件的方式. [那点事]    一.我 ...

  4. python读取配置文件-configparser

    一:首先在包目录下创建文件夹:config config下创建test.conf文件 [section1] #节点 name = tank #k = v age = 28[payload] page ...

  5. Golang库 - viper读取配置文件

    / 前言 / viper是由Steve Francia编写的开源配置解决方案, 也是cobra的作者, 我们来看下viper的功能 支持JSON.TOML.YAML/YML.PROPERTIES.EN ...

  6. 原生java读取properties与spring中@value、@ConfigurationProperties读取配置文件

    原生java读取properties与spring中@value.@ConfigurationProperties读取配置文件 1.properties类 Properties 继承于 Hashtab ...

  7. python读取配置文件-python 配置文件读写

    @(python) [TOC] 前言 将代码中的配置项抽取到配置文件中,修改配置时不需要涉及到代码修改,避免面对一堆令人抓狂的 magic number,极大的方便后期软件的维护. python 本身 ...

  8. spring中读取配置文件的方式,以及配置文件如何写

    application.properties spring.application.name=spring-boot-simple-study server.port=8080 application ...

  9. python 读取配置文件,报错configparser.NoSectionError: No section 解决方案

    configparser简要介绍 python的配置文件,将代码中的配置项抽取到配置文件中,修改配置时不需要涉及到代码修改,方便以后修改参数,极大的方便后期软件的维护.一般配置文件为config.in ...

最新文章

  1. fputc会覆盖吗_深覆盖 VS 深覆合如何区分?这一篇看完就都明白了!
  2. css3个性loading,css3 中实现炫酷的loading效果
  3. 猜数字游戏python程序_python经典小程序:猜数字游戏
  4. pandownload用户未登录_Pandownload再度复活,下载速度飙升到10MB/s以上
  5. Oracle学习 第26天 Toad试用感受
  6. asp网站服务器软件,asp服务器软件
  7. JSON Perl
  8. java低层源码_Java线程池及其底层源码实现分析
  9. WPF MVVM模式 发送DataGird表格的数据到另一个页面显示
  10. ehcache入门基础示例
  11. swig: 未找到命令
  12. EXCEL VBA常用代码集
  13. 【python学习笔记】Python的六种内置对象
  14. 计算机网络公网ip,怎么查看电脑的公网IP地址
  15. 一天一个小算法——最小生成树(kru Prm)
  16. matlab2018a调用python
  17. Windows 2003安全设置大全----2003系统错误大全解释
  18. 小米社招java面经_小米Java实习一面面经(凉)
  19. idea 制作maven脚手架_开发一个maven脚手架
  20. 高级开发人员可以向初学者学习的内容

热门文章

  1. Java并发编程实战 第4章 对象的组合
  2. POJ3265 Problem Solving ——动态规划——Pku3265
  3. 虚拟化概念和KVM简述
  4. feign一个接口多个方法_spring cloud 建一个服务消费者client-feign(最好用这种方式)...
  5. python语言的类型是_Python语言类型
  6. python 真多线程_Python之路200个小例子,在线网页版来了,从此学习更方便!
  7. 小翔和泰拉瑞亚(线段树+思维)
  8. write up web:网站被黑
  9. ospf 环回口的路由条目_【网络工程师配置篇】——OSPF汇总配置!
  10. FlinkX 如何读取和写入 Clickhouse?