C++ 在另一个目录中打开 .txt 文件

标签 c++

我必须向我的大学教授发送一个 C++ 项目。

该项目使用 QWidget、C++ 类和两个用作“数据库”的 .txt 文件来存储我的信息。

当我打开项目时,QList 会自动填充存储在 .txt 文件中的数据。

问题是,如果我希望项目使用其中的数据,我必须将 .txt 文件放在构建目录中。

有一种方法可以将.txt 文件放到存储所有.cpp 和.h 文件的目录中吗?

我用来打开文件的代码是:

std::ifstream in("file.txt");

但这只打开位于构建目录中的文件。我想更改项目查找文件的路径。

谢谢

最佳答案

如果您不考虑重复问题中提到的手动路径规范,我建议您使用 QStandardPaths ,如下所示

auto dbFilePath = QStandardPaths::locate(QStandardPaths::AppDataLocation, "file.txt", QStandardPaths::LocateFile);

或/和QCoreApplication::applicationDirPath

使用其中之一或基于这两者编写一些逻辑来独立于当前工作目录定位文件。请注意,在这些情况下,您需要预安装文件,然后您可以将其作为资源与文件一起发送。

关于C++ 在另一个目录中打开 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44260891/

相关文章:

c++ - (目标-)C++ 模板特化上的重复符号

c++ - vector 中这种删除方法有什么问题?

c++ - header 中的模板显式实例化

c++ - 如何初始化构造函数初始化列表中 `std::vector` 对象的类成员 `std::unique_ptr`?

c++ - 反转数组时遇到问题

c++ - 对于具有相同调用堆栈的同一对象,从同一线程调用两次函数

c++ - 如何加载 DLL 并访问其方法

C++ 实例化新对象导致相同的 "this"指针

c++ - C++ std::string::compare() 与字符串运算符之间的不一致

c++ - MPI 全对全通信问题