使用CLion创建C ++项目时遇到问题。 我的软件应该通过磁盘加载并保存用户的个人资料,以便每次打开程序时不会丢失自己的设置。显然,如果我知道.txt文件的预定义路径应该不是问题,但是我需要我的软件始终知道该文件的位置。 CLion是否允许创建一种使用.cpp文件构建的txt文件? 有可能为独立程序创建“内部存储器” 吗?
当我在CLion中运行它时,我将项目目录设置为“工作目录”,因此它知道在哪里可以找到“ data.txt”,但是当我从终端运行编译的程序(我在Linux上工作)时,它不会查找data.txt。 如何将已编译项目的“工作目录”永久化? 非常感谢。
答案 0 :(得分:3)
您有几种选择。
1)使用chdir
(在POSIX上)将CWD(当前工作目录)始终更改为已知位置。然后相对于该目录加载数据文件。
2)将数据存储在QSettings
之类的类似文件中,该文件已经知道如何从系统全局数据库中获取数据。
3)查找可执行文件的路径(在Linux上,请阅读/proc/self/exe
-其他平台上存在其他解决方案),然后从相对于可执行文件的已知位置读取数据。
4)将数据嵌入到您的可执行文件中(是的,可以动态地将您的可执行文件重新写入磁盘以在其中存储数据),然后读取您自己的可执行文件中的数据。
5)将数据存储在用户必须配置的某个位置,并告诉您有关信息(例如命令行参数),然后从那里读取。
6)从相对于用户主目录的已知位置读取。
可能我没想到。.
答案 1 :(得分:1)
除非绝对必要,否则不要重新发明轮子,并且必须能够明确地阐明问题,以便从头开始记录问题的原因。
您的目标OS /发行版将具有在系统范围和每个用户基础上保存配置文件的标准方法。使用它们!例如,在许多Linux发行版中,您会发现许多用户配置都保存在〜/ .config目录中-所有这些都要归功于易于使用且最重要的是,经过全面测试的系统库!