c++yaml-cpp

How to load YAML file via yaml-cpp?


I am very new to yaml-cpp. I tried the simplest program, but it failed and, and I couldn't find the answer from GitHub repository.

#include <iostream>
#include "yaml-cpp/yaml.h"

using namespace std;

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

sample.yaml sample from the official YAML website:

--- !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.

This is the error message:

libc++abi.dylib: terminating with uncaught exception of type YAML::BadFile: yaml-cpp: error at line 0, column 0: bad file

Is it the library building problem or a YAML syntax problem or an issue with my API usage?

I am using yaml-cpp version 0.5.1.


Solution

  • It appears that yaml-cpp can't find your file. Have you been able to load any file? Make sure that the file is in the working directory of your program, and for sanity's sake, make sure that you can load a very simple file first.