我想加载文件,以前我使用的是硬编码的文件位置(如“c:\ location \ file.txt”),但现在有几个朋友也在使用文件,我想让他们把可执行文件放在任何他们想要的地方。在当前目录中打开文件
我当前的代码看起来像:
ifstream myfile;
myfile.open("c:\\client\\settings.cfg");
我试图让用户将他们的可执行文件到任何他们想要的文件夹中更改它,然后他们创建一个文件夹,并把自己的设置文件进去和exe将加载与他们的设置。
ifstream myfile;
myfile.open("\\settings\\settings.cfg");
我有一些基本的错误处理到位,现在程序总是出错,说它找不到文件。
文件结构如下所示:
[ART]
asset.png
[SETTINGS]
settings.cfg
client.exe
这似乎是一个很简单的事情,但我找不到任何办法做到这一点。关于读取和写入文件的每个示例和教程仅处理可执行文件目录中的文件,或硬编码到c:\文件夹中...
任何人都可以指出我如何做到这一点?
This Works!谢谢! – user2827019
@ user2827019正如我在我的回答中所提到的,这与可执行文件的目录无关。它只相对于用户的当前目录。如果用户从其目录中启动可执行文件,它只会匹配可执行文件的目录。 –
@ user2827019:没问题。需要注意的一点是它基于*工作目录*,而不是可执行目录。因此,如果他们创建快捷方式并更改工作目录(Windows快捷方式的“开始”文件夹),它将尝试查看。 –