【问题标题】:Relative path with fstream c++fstream c ++的相对路径
【发布时间】:2015-03-26 15:15:33
【问题描述】:

我尝试使用 fstream 加载文件。代码是这样的

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

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

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

【问题讨论】:

标签: c++ file relative-path fstream


【解决方案1】:

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

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


见这里:fstream doesn't resolve path 也。

【讨论】:

  • 这些不都一样吗?可执行文件从哪里开始,文件夹在哪里?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-25
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多