【发布时间】:2011-07-05 05:42:31
【问题描述】:
我在使用 boost 程序选项读取 ini 文件时遇到了一些问题。问题是包含哈希标记的键(简化示例):
[部分]
key="xxx#yyy"
检索键,返回“xxx”,这是因为井号似乎被解释为注释的开始,因此该行的其余部分被跳过。不幸的是,我不能用其他字符替换“#”,因为该值是正则表达式。我没有找到引用 hashmark 的方法并且不想这样做,因为它会改变我的正则表达式并使其更加难以阅读。
有没有办法在不重写 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);
【问题讨论】: