使用C++项目将数据保存在磁盘上

Save data on disk with a C++ project

本文关键字:存在 磁盘 保存 数据 C++ 项目 使用      更新时间:2023-10-16

我在创建使用 CLion 制作的C++项目时遇到问题。 我的软件应该按磁盘加载和保存用户的配置文件,以免每次打开程序时都丢失自己的设置。显然,如果我知道.txt文件的预定义路径,这应该不是问题,但我需要我的软件始终知道该文件的保留位置。 CLion 是否允许创建一种使用 .cpp 文件构建的 txt 文件? 是否有可能为独立程序创建"内部存储器">

当我在CLion中运行它时,我将项目目录设置为"工作目录",因此它知道在哪里可以找到"data.txt"但是当我从终端运行编译的程序(我在Linux上工作(时,它找不到数据.txt。如何使已编译项目的"工作目录"也永久化?谢谢。

您有多种选择。

1( 使用类似chdir(在 POSIX 上(的东西始终将您的 CWD(当前工作目录(更改为已知位置。然后相对于该目录加载数据文件。

2(将数据存储在类似QSettings或类似的东西中,这些东西已经知道如何从系统全局数据库中获取内容。

3( 找到可执行文件的路径(在 Linux 上,读取/proc/self/exe- 其他平台上存在其他解决方案(,然后从相对于可执行文件的已知位置读取数据。

4(将数据嵌入到可执行文件中(是的,可以在磁盘上动态重写可执行文件以在其中存储数据(,然后从您自己的可执行文件读取数据。

5(将数据存储在用户必须配置并告诉您的某个位置(如命令行参数(,然后从那里读取。

6( 从相对于用户主目录的已知位置读取。

可能还有更多我没有想到..

不要重新发明轮子,除非你绝对、肯定地必须并且能够很好地阐明问题,以记录你从头开始的原因。

您的目标操作系统/发行版将具有在系统范围和每个用户基础上保存配置文件的标准方法。使用它们!例如,在许多 Linux 发行版上,您会发现许多用户配置都保存在 ~/.config 目录中 - 这一切都归功于易于使用的系统库,最重要的是,经过全面测试!