当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 12

winting/efserv
暂停

forked from xiaozhuai/efserv
暂停
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Ini.cpp 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
xiaozhuai 提交于 2017-03-20 14:27 . Project Init
/**
* @author : xiaozhuai
* @date : 17/3/18
*/
#include "Ini.h"
#define MAX_LINE_SIZE 10240 // max chars per line
#define MAX_KV_SIZE (MAX_LINE_SIZE / 2)
Ini *Ini::parse(string path) {
char buf[MAX_LINE_SIZE];
char tmpKey[MAX_KV_SIZE];
char tmpValue[MAX_KV_SIZE];
Ini *ini = new Ini();
ifstream in(path);
if (!in) { ini->perror = 1; return ini; }
while (!in.eof()) {
in.getline(buf, MAX_LINE_SIZE);
if (sscanf(buf, "%s = %s", tmpKey, tmpValue) == 2)
ini->set(tmpKey, tmpValue);
}
in.close();
ini->perror = 0;
return ini;
}
Ini *Ini::parseString(string str) {
stringstream ss;
ss << str;
char buf[MAX_LINE_SIZE];
char tmpKey[MAX_KV_SIZE];
char tmpValue[MAX_KV_SIZE];
Ini *ini = new Ini();
while(!ss.eof()){
ss.getline(buf, MAX_LINE_SIZE);
if (sscanf(buf, "%s = %s", tmpKey, tmpValue) == 2)
ini->set(tmpKey, tmpValue);
}
return ini;
}
void Ini::set(string key, string value) {
map[key] = value;
}
string Ini::get(string key, string defaultValue) {
if (exist(key))
return map[key];
else
return defaultValue;
}
bool Ini::exist(string key) {
return map.find(key) != map.end();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/winting/efserv.git
[email protected]:winting/efserv.git
winting
efserv
efserv
master

搜索帮助