fstream C++ 的相对路径

Relative path with fstream c++

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

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

但它没有加载任何内容。是的,仅当路径是绝对路径时。 我怎样才能使路径相对?

文件夹 "levels" 位于调试文件夹中。与exe相同的文件夹。

"The folder "levels" is hosted in the debug folder. same folder as the exe."

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


参见此处: 也。

路径处理是 OS 特定的。处理此问题的正确方法是添加一种用户指定应用程序路径的方式,然后使用该路径。例如,您可以添加命令行选项 --level-file=<path>。然后您的程序可以从该选项读取路径并将其传递给 fstream 构造函数。

更多请看我对这个问题的回答: