fstream c ++的相对路径

时间:2015-01-27 21:13:14

标签: c++ file relative-path fstream

我尝试使用fstream加载文件。代码看起来像这样

file.open("../levels/level0.lvl");
if (file.is_open()) {
    while (!file.eof()) {
        std::getline(file, Str);
        list = ReadLine(Str, list);
    }
}

但它什么也没有加载。是的,只有路径是绝对的。 我怎样才能使路径相对?

文件夹“levels”托管在debug文件夹中。与exe。相同的文件夹。

2 个答案:

答案 0 :(得分:6)

  

“文件夹”级别“托管在调试文件夹中。与exe文件夹相同。”

levels文件夹与可执行文件的路径相关的位置无关紧要 确定相对路径的相关文件夹是实际启动可执行文件的工作目录。


另见:fstream doesn't resolve path

答案 1 :(得分:0)

路径处理是特定于操作系统的。处理此问题的正确方法是添加用户指定应用程序路径的方法,然后使用该路径。例如,您可以添加命令行选项function SetValue( nameProperty , value ){ nameProperty = nameProperty.replace( "_root.",''); _root[nameProperty] = value; } SetValue("_root.MyProperty","35"); 。然后你的程序可以读取该选项的路径并将其传递给fstream构造函数。

有关详情,请参阅我对此问题的回答:https://stackoverflow.com/a/40980510/2345997