让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

Ratel 网络库之配置文件模块设计思路

发布日期:2022-07-13 12:35    点击次数:181


本文转载自微信公多号「畅游码海」,作者CallMeEngineer 。转载本文请联系畅游码海公多号。  配置文件读取思路(CConfig类): 配置文件读取答该在程序的开起进动初起化,从配置文件中读取程序的联系配置和用户自定义的新闻。如:程序的进程的启动个数、每个进程答该启动的线程数的个数、程序在Linux中是否以守护进程手法进动启动等。配置文件的设计答该具有美不都雅、乾净等特点。

配置文件

以 '#' 开起的每一动配置答该当作挑示内容,在读取时答该直接跳过 当读取到 “[” 符号时,答该进动跳过方便俺们对配置文件的分组 其次答该仔细到对空格的过滤,防止空格对俺们读取进动作对 配置类的行动思路:

CConfig

代码如下(含具体注脚):

/*  *CConfig.h */ #include<iostream> #include<map> class CConfig { public:  //配置文件的路径  CConfig(std::string filename = "test.conf");  ~CConfig(void);  //初起化配置  int InitConfig();  //获取配置参数  std::string getParam(std::string param);  //竖立配置参数  std::string setParam(); private:    bool file_isok; //文件是否读取成功  int ParamHandle(std::string strline); //处理每一动的参数 public:  std::map<std::string,std::string> paramstore; // 保存一律参数  std::string filename; //文件名   }; 
/*  * CConfig.cpp */ #include "stdafx.h" #include "Config.h" #include<fstream> #include <string> #include<cstring> CConfig::CConfig(std::string filename):file_isok(false) {  std::ifstream fp;  fp.open(filename.c_str(),std::ios::in);  if(fp.is_open()){                      //验证文件是否可以掀开,并进动标记   file_isok = true;   this->filename = filename;  }  } CConfig::~CConfig(void) { } std::string CConfig::getParam(std::string param){  for(auto pa : paramstore){   if(pa.first == param)    return pa.second;  }  return ""; } int CConfig::InitConfig(){  if(!file_isok)return -1; //初起化失利  std::ifstream fp;  fp.open(filename.c_str(), std::ifstream::in);  if(!fp){   std::cerr << "文件读掏出错" << std::endl;   return -1;  }   char str[100];  while(fp.getline(str,100)){    //读取每一动的配置文件   unsigned int start, end;   for(start = 0; start < strlen(str); start++){    if(str[start] == ' '



Powered by 桃花社区视频在线观看免费完整版-桃花在线观看免费观看手机-桃花社区免费观看HD @2013-2022 RSS地图 HTML地图