我正在尝试YAML::Tiny
使用 C++ 解析 Perl 的 YAML 文件输出。作为 C++ 和 YAML 新手,我使用HowToParseADocument作为起点。
该monsters.yaml
文件(如果使用 创建YAML::Tiny
)如下所示:
---
name: Ogre
position: [0, 5, 0]
powers:
- name: Club
damage: 10
- name: Fist
damage: 8
---
name: Dragon
position: [1, 0, 10]
powers:
- name: Fire Breath
damage: 25
- name: Claws
damage: 15
---
name: Wizard
position: [5, -3, 0]
powers:
- name: Acid Rain
damage: 50
- name: Staff
damage: 3
我正在寻求帮助将HowToParseADocument中的示例变形以读取修改后的 YAML 文件,---
并将其作为每个条目的分隔符。我重新复制了下面的 C++ 主代码。
int main()
{
std::ifstream fin("monsters.yaml");
YAML::Parser parser(fin);
YAML::Node doc;
parser.GetNextDocument(doc);
for(unsigned i=0;i<doc.size();i++) {
Monster monster;
doc[i] >> monster;
std::cout << monster.name << "\n";
}
return 0;
}