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 构造函数。
更多请看我对这个问题的回答:
我尝试使用 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 构造函数。
更多请看我对这个问题的回答: