本文整理汇总了C++中util::trim方法的典型用法代码示例。如果您正苦于以下问题:C++ util::trim方法的具体用法?C++ util::trim怎么用?C++ util::trim使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类util
的用法示例。
在下文中一共展示了util::trim方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
long DataMap::load(string file, const function<void(DataMapState *)> &predicate) {
// if no file was passed
if(file.empty()) {
cerr << "DataMap::load: can't pass empty file parameter" << endl;
return -1;
}
// open the passed file
ifstream in(file);
if(!in.good()) {
cerr << "DataMap::load: " << file << ": not good" << endl;
return -2;
}
long addedEntries = 0;
DataMapState dms = {
this, DMSType::Invalid, this->m_defaultScope, "", "", "", 0 };
while(!in.eof()) {
// read the next line
string line;
getline(in, line);
if(!in.good())
break;
// strip whitespace, continue if line is blank
line = trim(line);
if(line.empty())
continue;
dms.line = line;
dms.result = 0;
char equals = '=';
// if it is a comment, ignore it
if(line[0] == '#') {
continue;
// if it is a scope line
} else if(line[0] == '[' && line[line.length() - 1] == ']') {
dms.type = DMSType::Scope;
dms.value = trim(line.substr(1, line.length() - 2));
// if it is a variable definition
} else if(util::contains(line, equals)) {
dms.type = DMSType::Entry;
dms.key = trim(line.substr(0, line.find('=')));
dms.value = trim(line.substr(line.find('=') + 1));
} else {
dms.type = DMSType::Invalid;
}
predicate(&dms);
switch(dms.type) {
case DMSType::Scope:
dms.scope = dms.value;
break;
case DMSType::Entry:
this->m_map[dms.scope][dms.key] = dms.value;
addedEntries++;
break;
case DMSType::Invalid:
break;
}
addedEntries += dms.result;
}
return addedEntries;
}