如何通过YAML-cpp加载YAML文件
How to load YAML file via yaml-cpp?
我对yaml-cpp
很陌生。我尝试了最简单的程序,但失败了,而且我在GitHub存储库中找不到答案。
#include <iostream>
#include "yaml-cpp/yaml.h"
using namespace std;
int main()
{
YAML::Node config = YAML::LoadFile("sample.yaml");
return 0;
}
来自YAML官方网站的sample.yaml
样本:
--- !clarkevans.com/^invoice
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
这是错误消息:
libc++abi.dylib: terminating with uncaught exception of type YAML::BadFile: yaml-cpp: error at line 0, column 0: bad file
是库构建问题还是YAML语法问题,或者是我的API使用问题?
我使用的是yaml-cpp
版本0.5.1。
我认为您正在使用的YAML-cpp版本中的YAML解析器不够高级,无法处理示例文件的第一行。示例文件试图说明一些更高级的YAML特性。您的解析器似乎无法处理所有这些问题。我建议您从一个更简单的示例文件开始。
我用三个在线验证器检查了你的文件,结果如下:
- http://yaml-online-parser.appspot.com/(无效)
- http://wiki.ess3.net/yaml/105940(无效)
- http://yamllint.com/(有效)
毫无疑问,该文件是有效的YAML,但这并不意味着所有现存的解析器都可以解析它!
看来yaml-cpp找不到您的文件。你能加载任何文件吗?请确保该文件在程序的工作目录中,为了保持理智,请确保可以先加载一个非常简单的文件。
您的yaml文件需要位于您的结束状态所在的位置,这取决于您给定的路径。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用 yaml-cpp 解析 YAML 文件
- 如何使用 ROS 从 yaml 文件中读取带有元组的数组?
- 使用YAML -CPP新API - 已修复的YAML文件解决
- 如何从yaml文件中获取特定的类别名称
- 使用yaml :: emitter将嵌套地图和序列编写到yaml文件
- OpenCV 加载 yaml 文件时出错
- YAML::LoadFile(std::string const&) 找不到文件 [ROS 中的 yaml-cpp]
- 如何使用 yaml-cpp 解析文件
- 从yaml文件问题opencv读取数据
- 如何在OpenCV中编辑/更新YAML文件
- C++ YAML:如何编辑/写入 .yaml 文件中的节点
- 将项目附加到YAML文件中的映射中
- 在尝试运行文件时,yaml-cpp出错
- yaml-cpp/yaml.h:没有这样的文件或目录
- OpenCV将PCA特征向量写入yaml文件,丢失精度
- 如何通过YAML-cpp加载YAML文件