
yaml-cpp 是一个用于解析 yaml 的 c++ 库
demo
YAML::Node node = YAML::Load(""
"- name: Jonen"
" age: 12n"
"- name: Susann"
" age: 13n"
);
// print scalar
std::cout << node[0]["name"]; // Jone
// print map // name: Jone
std::cout << node[0]; // age: 12
// type cast
std::string name = node[1]["name"].as<string>();
std::cout << name; // Susan
// append new node
YAML::Node newNode; // - name: Jone
newNode["name"] = "Michelle"; // age = 12
newNode["age"] = 12; // - name: Susan
// age = 13
node.push_back(newNode); // - name: Michelle
std::cout << node // age = 12
// modify node
node[0]["name"] = "Michelle"; // name: Michelle
cout << node[0]; // age: 12
// node type
switch (node.Type()) {
case YAML::NodeType::Null: // ...
case YAML::NodeType::Scalar: // ...
case YAML::NodeType::Sequence: // ...
case YAML::NodeType::Map: // ...
case YAML::NodeType::Undefined: // ...
}
// node type check
node.IsNull();
node.IsScalar();
node.IsSequence();
node.IsMap();
// complex mapping
YAML::Node node = YAML::Load(""
"? [year, month]n"
": [2012, 12]"
);
vector<string> v;
v.push_back("year");
v.push_back("month");
cout << node[v][1] << endl; // 12




近期评论