C++ YAML库例子
时间: 2025-01-30 09:19:01 浏览: 42
### C++ 中使用 YAML 库的示例
#### 创建和读取简单的 YAML 文件
下面是一个完整的例子,展示了如何创建并读取一个简单的 YAML 文件。
```cpp
#include <iostream>
#include <fstream>
#include <yaml-cpp/yaml.h>
void writeYAML() {
YAML::Emitter out;
out << YAML::BeginMap; // Start map (dictionary)
out << YAML::Key << "name" // Key name
<< YAML::Value << "John Doe"; // Value of the key 'name'
out << YAML::Key << "age"
<< YAML::Value << 30;
out << YAML::Key << "isMarried"
<< YAML::Value << false;
out << YAML::Key << "hobbies"
<< YAML::Value << YAML::BeginSeq // Begin sequence (list/array)
<< "reading"
<< "swimming"
<< "coding"
<< YAML::EndSeq; // End list
out << YAML::EndMap; // End dictionary
std::ofstream fout("example.yaml");
fout << out.c_str();
}
void readYAML() {
YAML::Node config = YAML::LoadFile("example.yaml");
std::string name = config["name"].as<std::string>();
int age = config["age"].as<int>();
bool is_married = config["isMarried"].as<bool>();
const YAML::Node& hobbies = config["hobbies"];
for(unsigned i=0; i<hobbies.size(); ++i){
std::cout << hobbies[i].as<std::string>() << "\n";
}
std::cout << "Name: " << name << ", Age: " << age << ", Married? : "
<< (is_married ? "Yes" : "No") << std::endl;
}
```
这段代码首先定义了一个 `writeYAML` 函数来写入一些基本的数据到名为 `example.yaml` 的文件中[^1]。接着通过 `readYAML` 函数加载这个文件,并从中提取信息打印出来[^2]。
为了编译上述程序,可以使用如下命令:
```bash
g++ -o yaml_example example.cpp -lyaml-cpp
```
此命令会链接必要的库 `-lyaml-cpp` 并生成可执行文件 `yaml_example`。
阅读全文
相关推荐


















