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