使用 fstream c++ 的相对路径

Relative path with fstream c++

本文关键字:相对 路径 c++ fstream 使用      更新时间:2023-10-16

我尝试用fstream加载文件。代码如下所示

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

但它什么也没加载。是,仅当路径是绝对的。如何使路径相对?

文件夹"levels"托管在调试文件夹中。 与 EXE 相同的文件夹。

"

文件夹"levels"托管在调试文件夹中。与 exe 相同的文件夹。

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


请参阅此处:fstream 也不会解析路径。

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

请参阅我对此问题的回答以获取更多信息:https://stackoverflow.com/a/40980510/2345997