tl:dr; 如何处理自定义结构化二进制文件的方法文件?
我有几个自定义文件结构,它们的大小和结构可能有所不同。我试图编写一个文件处理类来管理所有文件,但是我不知道如何处理它。
我目前的方法是:
structs
加载到该内存中,然后创建一个带有指针的文件处理类,该指针将读取/写入该特定大小的内存。 MEMLOC
指向内存的开始,curr_pos
指向内存中的当前位置。然后用头,身体和脚的尺寸初始化类,这将生成一个新的堆数组,该堆数组将填充类对象。主要问题是,我具有不同的文件结构,其中块从4个字节变化到20个(有时甚至是50个)字节。而且由于文件必须能够在块之间来回转换为二进制结构...我不确定如何采用这种方式。
那么有人可以将我链接到一些文献/ github /上可以帮助我进行自定义结构化文件处理的内容吗?
我要问的不是“对于Stack Overflow来说,建议或查找书籍,工具,软件库,教程或其他非现场资源都是不合时宜的”。问题是,谷歌甚至没有给我提供任何线索,而且堆栈溢出没有提供任何对使用基本文件流头之外的内容有深刻见解的答案。我要问的是对fstream.open
较复杂的话题的见解,同时仍在尝试确保安全并避免内存泄漏。
我已经看到足够多的use boost
,use vectors
,use this magic library
帖子,但没有人真正了解它在工具或魔术库之外的工作方式。
所以我会再次询问
一种方法如何自定义结构化文件处理?
人们应该注意哪些通用陷阱?
可以/无法避免的跨平台问题?
由于这些问题是特定的,因此通常需要大量解释。而且由于堆栈溢出充满了 tl; dr; 伙计们/加尔斯,我完全开放了小段文字,并链接到github / book来进一步研究。
如果堆栈溢出的策略不是显示cplusplus.com
可以提供的更复杂的问题的答案,那我就失去声誉-因为我宁愿错并向其学习而不愿学习。如果我由于某种原因而被禁止使用-那么请把我指向有效的堆栈交换站点,在这里我可以问这种问题。