包括静态数据/文本文件
Include static data/text file
我有一个带有字符串标识符的ascii数字的文本文件(>50k行),可以将其视为数据向量的集合。根据用户输入,应用程序在运行时只需要其中一个数据向量。
据我所知,我有 3 个选项可以从此文本文件中获取信息:
- 将其保留为文本文件,在运行时提取所需的向量。我相信缺点是代码中不能有相对路径,因此用户必须指向文件的正确位置(?)。或者,让配置脚本将绝对路径注入为宏。
- 使用 xxd 将其转换为静态无符号字符(如此处所述),然后包含生成的文件。缺点是 5MB 文件变成了 25MB 的包含文件。我认为这 25MB 在运行时期间加载到内存中是否正确?
- 将其转换为对象并使用 objcopy 链接,如此处所述。这似乎使文件大小大致相同 - 还有其他权衡吗?
是否有标准/推荐的方法?如果这有所作为,我可以使用 C 或 C++。
谢谢。
(在带有 gcc 的 Linux 上运行)
我会使用数字 1 并将文件路径作为参数传递到程序中。这样做没有错,而且简单明了。
你应该看看这里的答案:
正在运行的程序目录
投票最高的答案为您提供了如何处理数据文件的胶水。但是,我建议将其保存在/usr/share 下,而不是主文件夹,如链接中所述。
我倾向于使用 zlib(两种方式都是可能的:side 文件或包含在压缩数据中)。
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 打印逐行存储的文本文件
- C++文本文件输入