1
用例正在遍历用YAML编写的配置文件。我需要检查每个键并相应地解析其值。我喜欢使用随机访问方法(如doc["key"] >> value
)的想法,但我真正需要做的是在配置文件中警告用户无法识别的密钥,以防他们拼写错误的密钥。我不知道如何做到这一点没有迭代通过该文件。使用YAML-cpp,如何识别未知密钥?
我知道我可以使用YAML::Iterator
做到这一点,像这样
for (YAML::Iterator it=doc.begin(); it<doc.end(); ++it)
{
std::string key;
it.first() >> key;
if (key=="parameter") { /* do stuff, possibly iterating over nested keys */ }
} else if (/* */) {
} else {
std::cerr << "Warning: bad parameter" << std::endl;
}
}
但有一个简单的方法来做到这一点?我的方式似乎完全绕过了内置于YAML-cpp中的任何错误检查,并且它似乎取消了随机访问密钥的所有简单性。
是的,我想我必须迭代,然后。我也在考虑“创意”用户在左栏中输入内容的情况。没有反馈,用户可能会问为什么程序没有问题就接受了他的输入,却没有做到他想做的。 – Fadecomic