c++ - 打开当前目录中的文件

标签 c++ file directory

我正在尝试加载文件,之前我使用的是硬编码文件位置(例如“c:\location\file.txt”),但现在一些 friend 也在使用该文件,我想允许他们将可执行文件放在他们想要的任何地方。

我当前的代码如下:

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:\folder...

谁能告诉我如何做到这一点?

最佳答案

大多数系统的搜索路径从当前工作目录开始,然后到 PATH 环境变量。因此,您需要做的就是指定没有绝对路径标记的文件/文件夹,它将使用相对于工作目录的路径:

ifstream myfile;
myfile.open("settings\\settings.cfg");
//           ^^ Note the lack of \\ to start the file path

关于c++ - 打开当前目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761069/

相关文章:

c - 了解文件截断

c - matlab,我如何从多个文件夹中读取

java - Java 中的 SAX 解析问题

c++ - 移动指针的右值引用

c++ - 根据数据转换 void 指针 (C++)

c++ - 每个程序上的 "logout"字

c++ - 有没有办法保存列的顺序?

c - 外部驱动器上写入的文件丢失

arrays - 将文件行存储到数组中

c# - 如何限制文件夹/文件只能访问一个程序?