为什么提升ini_parser不适用于相对路径?

时间:2015-02-03 19:20:29

标签: c++ path ini relative

有ini解析代码

boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini("file.ini", pt);

ini_parser.hpp抛出异常。

// ini_parser.hpp - Exeption throwed
//
Ptree &container = section ? *section : local;
typename Str::size_type eqpos = line.find(Ch('='));
if (eqpos == Str::npos)
    BOOST_PROPERTY_TREE_THROW(ini_parser_error(
        "'=' character not found in line", "", line_no));

但是,如果我使用file.ini的绝对路径,那么效果很好。

我如何使用相对路径?

3 个答案:

答案 0 :(得分:0)

毫无疑问,您的工作目录不在您认为的位置。

工作目录可能不包含file.ini文件,或者它包含该名称的其他文件,但没有有效的ini文件内容

答案 1 :(得分:0)

根据提供的信息,您可能无法获得所需的当前工作目录。您使用的是哪个编译器/环境,以及如何为程序指定工作目录?

答案 2 :(得分:0)

在我的情况下,使用BOM而不是普通的UTF-8

来编码UTF-8