解析一个如下的CONFIG文件

#config.txt
#SHTTPD Web 服务器配置文件示例
#侦听端口
ListenPort = 80
#最大并发访问客户端数目
MaxClient = 8
#Web网页根目录
DocumentRoot = /home/www/
#CGI根目录
CGIRoot = /home/www/cgi-bin/
#默认访问文件名
DefaultFile = index.html
#客户端空闲链接超时时间
TimeOut = 5

  代码

#include <fstream>
#include <string>
#include <map>
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <cctype>
#include <locale> class GetConfigInfo {
public:
bool ReadFile(std::string fileName); private:
std::map<std::string, std::string> configMap;
std::fstream fin_;
}; bool GetConfigInfo::ReadFile(std::string fileName) {
fin_.open(fileName);
if (fin_.bad())
return false;
std::string readLine;
while (getline(fin_, readLine)) //逐行读取,直到结束
{
size_t i = readLine.find("#");
if (i != std::string::npos)
continue;
i = readLine.find_first_of(" \t");
while (i != std::string::npos)
{
readLine.erase(i,1);
i = readLine.find_first_of(" \t");
}
std::cout << readLine << std::endl;
i = readLine.find("=");
if (i == std::string::npos)
continue;
std::string s1 = readLine.substr(0,i);
std::string s2 = readLine.substr(i + 1, std::string::npos);
configMap.insert(std::pair<std::string, std::string>(s1, s2));
} fin_.close();
return true;
} int main()
{
GetConfigInfo gci;
gci.ReadFile("config.txt");
return 0;
}

  

解析config文件 练手代码的更多相关文章

  1. python网页抓取练手代码

    from urllib import request import html.parser class zhuaqu(html.parser.HTMLParser): blogHtml = " ...

  2. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  3. java解析properties文件

    在自动化测试过程中,经常会有一些公用的属性要配置,以便后面给脚本使用,我们可以选择xml, excel或者json格式来存贮这些数据,但其实java本身就提供了properties类来处理proper ...

  4. init进程解析rc文件的相关函数分析

    init进程的源码文件位于system/core/init,其中解析rc文件语法的代码放在五个函数中, init_parse_config_file (init_parser.c), read_fil ...

  5. android 生成、pull解析xml文件

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  6. 解析Markdown文件生成React组件文档

    前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...

  7. webpack练手项目之easySlide(二):代码分割(转)

    在上一篇 webpack练手项目之easySlide(一):初探webpack  中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但是乍一看webpack ...

  8. webpack练手项目之easySlide(二):代码分割

    Hello,大家好. 在上一篇 webpack练手项目之easySlide(一):初探webpack  中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但 ...

  9. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

随机推荐

  1. 【java基础】java字符串之StringBuffer和StringBuilder

    [一]简述区别 package com.sxf.test.string; public class StringBufferStringBuilderTest { public static void ...

  2. Mysql中谓词使用date_format的优化

    优化前: SELECT a.* FROM t1 a, (SELECT obj_id,MAX(PRE_DETAIL_INST_ID) PRE_DETAIL_INST_ID FROM t1 WHERE D ...

  3. Git资料

    git作为流行的分布式版本管理系统,虽然入门有点难,不过学会还是很有用的,尤其是针对技术人员.它从2005年Linux作者两周用C++写的一个版本发展到现在这么流行也是有原因的. Downloads  ...

  4. VsCode中运行nodeJs代码的简单方法

    VsCode安装包默认内置的node debug插件需要配置工程调试运行文件才能正常运行,对于想要运行一个简单的js文件或者就是一段js代码时比较麻烦,为此可以安装Code Runner插件 安装完后 ...

  5. postgresql双机热备、高可用方案(采用pacemaker+corosync实现)

    http://blog.csdn.net/qguanri/article/details/51151974 需求描述 我们有两台centos7的数据库主机A.B.要对A.B实现双机热备,A作为数据库m ...

  6. linux用命令行看网线物理连接状态

    inux下有两个命令可以看网线状态: ethtool 和 mii-tool 竟然还都要用,由于网卡所支持的协议不同,哪个网卡能用哪个命令是不一定的. [root@rhel demo]# ethtool ...

  7. 黄聪:VPS服务器如何配置PHP.ini解决wordpress使用WP-Mail-SMTP插件发邮件出现Could not connect to SMTP host的解决办法

    1.首先是WP-Mail-SMTP的下载地址:http://wordpress.org/plugins/wp-mail-smtp/ 2.出现Could not connect to SMTP host ...

  8. jQuery layer弹出层插件 http://layer.layui.com/直接上官网学

    在许多网站中,经常用到弹出层,有时候为了达到更好的用户体验,你将写繁琐的css跟js,这款 jquery-layer可以让你想到即可做到的web弹窗/层js组件.layer侧重于用户灵活的自定义,为不 ...

  9. 五.jQuery源码解析之jQuery.extend(),jQuery.fn.extend()

    给jQuery做过扩展或者制作过jQuery插件的人这两个方法东西可能不陌生. jQuery.extend([deep],target,object1,,object2...[objectN]) jQ ...

  10. Axure RP Extension for Chrome经常损坏

    昨天自己修改后的谷歌浏览器插件,才使用了一天,今天刚打开浏览器就弹出了“已停用不支持的扩展程序”提示,第三方扩展程序就这么不受谷歌浏览器待见呢!?好吧,想办法解决! 通过扩展程序里“该扩展程序未列在 ...