yaml cpp如何输出[123,123]
时间: 2023-12-24 21:02:34 浏览: 122
你可以使用 `YAML::Node` 类型来表示一个 YAML 格式的节点,然后将其输出为字符串。
以下是一个示例代码,演示了如何使用 `YAML::Node` 类型输出 `[123, 123]`:
```cpp
#include <iostream>
#include "yaml-cpp/yaml.h"
int main() {
YAML::Node node;
node.push_back(123);
node.push_back(123);
std::cout << node << std::endl;
return 0;
}
```
输出结果为:
```
- 123
- 123
```
其中 `-` 表示一个 YAML 序列,`123` 表示序列中的元素。
相关问题
yaml-cpp库使用示例
YAML是一种人类可读的数据序列化格式,它非常适用于配置文件和数据交换。yaml-cpp是一个C++库,用于解析和生成YAML格式的数据。
以下是yaml-cpp库的使用示例:
1. 安装yaml-cpp库
首先,需要安装yaml-cpp库。可以使用以下命令在Ubuntu上安装:
```
sudo apt-get install libyaml-cpp-dev
```
2. 解析YAML文件
假设有一个名为config.yaml的YAML文件,其内容如下:
```
name: John Smith
age: 30
address:
street: 123 Main St.
city: Anytown
state: CA
zip: 12345
```
可以使用以下代码解析该文件:
```c++
#include <yaml-cpp/yaml.h>
#include <iostream>
int main(int argc, char** argv) {
YAML::Node config = YAML::LoadFile("config.yaml");
std::string name = config["name"].as<std::string>();
int age = config["age"].as<int>();
std::string street = config["address"]["street"].as<std::string>();
std::string city = config["address"]["city"].as<std::string>();
std::string state = config["address"]["state"].as<std::string>();
int zip = config["address"]["zip"].as<int>();
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
std::cout << "Address: " << street << ", " << city << ", " << state << " " << zip << std::endl;
return 0;
}
```
输出结果为:
```
Name: John Smith
Age: 30
Address: 123 Main St., Anytown, CA 12345
```
3. 生成YAML文件
可以使用以下代码生成一个YAML文件:
```c++
#include <yaml-cpp/yaml.h>
#include <iostream>
#include <fstream>
int main(int argc, char** argv) {
YAML::Emitter out;
out << YAML::BeginMap;
out << YAML::Key << "name" << YAML::Value << "John Smith";
out << YAML::Key << "age" << YAML::Value << 30;
out << YAML::Key << "address";
out << YAML::BeginMap;
out << YAML::Key << "street" << YAML::Value << "123 Main St.";
out << YAML::Key << "city" << YAML::Value << "Anytown";
out << YAML::Key << "state" << YAML::Value << "CA";
out << YAML::Key << "zip" << YAML::Value << 12345;
out << YAML::EndMap;
out << YAML::EndMap;
std::ofstream fout("config.yaml");
fout << out.c_str();
return 0;
}
```
该代码将生成一个名为config.yaml的文件,其内容与上述示例相同。
总结
yaml-cpp是一个非常方便的C++库,用于解析和生成YAML格式的数据。在使用时,只需包含头文件,并调用相应的函数即可。
c++写yaml文件,key和value分行
你可以使用第三方库yaml-cpp来写YAML文件。下面是一个示例代码,展示如何使用yaml-cpp将key和value分行写入文件中:
```c++
#include <iostream>
#include <fstream>
#include "yaml-cpp/yaml.h"
int main() {
// 创建一个YAML文档
YAML::Node doc;
// 设置键值对
doc["name"] = "John";
doc["age"] = 30;
doc["address"] = "123 Main St.\nAnytown, USA";
// 将文档写入文件中
std::ofstream fout("example.yaml");
fout << doc;
fout.close();
return 0;
}
```
在上面的示例中,我们使用`\n`来分行写入值。输出的example.yaml文件内容如下:
```
address: "123 Main St.\nAnytown, USA"
age: 30
name: John
```
请注意,使用yaml-cpp库时,键值对的顺序会被保留。
阅读全文