Я пытаюсь проанализировать вывод файла YAML из Perl YAML::Tiny
, используя C ++.Как новичок в 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;
}