我使用boost程序選項從ini文件讀取時遇到了一些麻煩。問題是其含有hashmarks(simplyfied示例)的鍵:在程序選項值(ini文件)中使用哈希標記
[段]
鍵= 「XXX#YYY」
檢索關鍵,因爲hashmark似乎是返回 「XXX」,其是解釋爲註釋的開始,因此該行的其餘部分被跳過。不幸的是,我不能用其他字符替代'#',因爲這個值是一個正則表達式。我沒有找到引用哈希標記的方法,並且不希望這樣做,因爲它會改變我的正則表達式,使其更加難以理解。
有沒有辦法處理這個問題,而不重寫ini文件分析器? 感謝您的幫助。
我的代碼以獲取關鍵的樣子:
std::string key;
boost::program_options::options_description opDesc("test");
opDesc.add_options()("section.key", po::value<string>(&key))
std::ifstream ifs("file.ini");
boost::program_options::parse_config_file(ifs, opDesc);
聽起來不錯,非常感謝! – raines