我尝试使用fstream加载文件。代码看起来像这样
file.open("../levels/level0.lvl");
if (file.is_open()) {
while (!file.eof()) {
std::getline(file, Str);
list = ReadLine(Str, list);
}
}
但它什么也没有加载。是的,只有路径是绝对的。 我怎样才能使路径相对?
文件夹“levels”托管在debug文件夹中。与exe。相同的文件夹。
答案 0 :(得分:6)
“文件夹”级别“托管在调试文件夹中。与exe文件夹相同。”
levels
文件夹与可执行文件的路径相关的位置无关紧要
确定相对路径的相关文件夹是实际启动可执行文件的工作目录。
答案 1 :(得分:0)
路径处理是特定于操作系统的。处理此问题的正确方法是添加用户指定应用程序路径的方法,然后使用该路径。例如,您可以添加命令行选项function SetValue( nameProperty , value ){
nameProperty = nameProperty.replace( "_root.",'');
_root[nameProperty] = value;
}
SetValue("_root.MyProperty","35");
。然后你的程序可以读取该选项的路径并将其传递给fstream构造函数。
有关详情,请参阅我对此问题的回答:https://stackoverflow.com/a/40980510/2345997