首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过yaml-cpp加载YAML文件?

如何通过yaml-cpp加载YAML文件?
EN

Stack Overflow用户
提问于 2014-04-16 19:30:08
回答 3查看 14.3K关注 0票数 8

我对yaml-cpp非常陌生。我尝试了最简单的程序,但它失败了,而且我无法从GitHub存储库中找到答案。

代码语言:javascript
复制
#include <iostream>
#include "yaml-cpp/yaml.h"

using namespace std;

int main()
{
    YAML::Node config = YAML::LoadFile("sample.yaml");
    return 0;
}

来自YAML官网的sample.yaml示例:

代码语言:javascript
复制
--- !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.

以下是错误消息:

代码语言:javascript
复制
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。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-17 05:52:56

yaml-cpp似乎找不到您的文件。你能加载任何文件吗?确保该文件位于程序的工作目录中,并且为了正常起见,请确保您可以先加载一个非常简单的文件。

票数 2
EN

Stack Overflow用户

发布于 2014-04-16 19:35:22

我认为您正在使用的yaml-cpp版本中的YAML解析器还不够先进,无法处理示例文件的第一行。示例文件试图演示相当多的更高级的YAML特性。看起来你的解析器不能全部处理它们。我建议您从一个更简单的示例文件开始。

我用三个在线验证器检查了你的文件,结果如下:

  • http://yaml-online-parser.appspot.com/ (invalid)
  • http://wiki.ess3.net/yaml/105940 (invalid)
  • http://yamllint.com/ (有效)

毫无疑问,该文件是有效的YAML,但这并不意味着所有现有的解析器都可以解析它!

票数 8
EN

Stack Overflow用户

发布于 2018-11-08 22:54:57

根据您提供的路径,您的yaml文件需要位于您的endstate所在的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23108179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档