最有效的读取文件到单独的变量使用fstream
Most efficient to read file into separate variables using fstream
我有很多文件看起来有点像:
12-3-125-BINARYDATA
将12
, 3
和125
保存为单独的整数变量,并将BINARYDATA
保存为char-vector
的最有效方法是什么?
我真的很想使用fstream
,但我不完全知道如何(让它与std::strings
一起工作,但BINARYDATA
部分都搞砸了)。
读取数据的最有效方法是使用最少的I/O函数调用读取许多"chunk "或记录到内存中,然后在内存中解析数据。
例如,一次调用fread
读取5条记录比5次调用fread
读取一条记录更有效率。访问内存总是比访问外部数据(如文件)快。
一些平台有对文件进行内存映射的能力。这可能比读取using I/O函数更有效。分析将决定最有效的。
固定长度的记录总是比可变长度的记录更有效。可变长度记录要么读取到固定大小,要么读取到找到终端(哨兵)值。例如,文本行是一个可变记录,必须每次读取一个字节,直到找到终止的end - line标记。在这种情况下,缓冲可能有所帮助。
二进制数据是什么意思?它是010101000个字符还是"真正的"二进制数据?如果它们是真正的"二进制数据",只需将该文件作为二进制文件读取。首先为第一个int读取2个字节,然后为-读取1个字节,为3读取2个字节,以此类推,直到读取二进制数据的第一个pos,只需获取文件长度并读取全部。
相关文章:
- 如何在类中递增单独的变量,而不是对象本身?
- 不生成单独约束的变量的 Gurobi 影子价格
- 简单的问题 - 如何从单独的"结构"内的'class'访问变量?
- 在这种情况下,当尝试从单独的类更新变量时,我是否需要使用指针?
- 如何将整数值解析为逗号分隔字符串中的单独 int 变量?
- Qt读取串行输入,然后将其拆分为单独的变量
- 模块名称是否驻留在单独的"name space"中,或者它们可能与例如变量名称发生冲突?
- 如何在单独文件中定义的成员函数中使用成员变量
- 使用/创建/修改单独.cpp文件中的变量
- 如何为同一类对象的成员函数保留单独的变量副本?
- 在 c++ 中将字符串拆分为单独的变量
- 如何将要分配给具有不同索引的单独变量分配给C 的单独变量
- 变量只能全局"declared",但不能修改/(单独初始化)
- 为什么我的变量在单独的线程中修改时没有改变?C++/boost
- 如何将__DATE__和__TIME__宏拆分为变量声明的单独组件
- C++无法在单独函数中的变量之间建立通信
- 使用局部全局变量在单独的线程中运行C函数
- C 细分故障由全局变量在单独的源文件中引起
- 变量模板的单独定义
- 需要有关在类之间共享变量的 OOP 设计的帮助,这些变量单独使用计时器运行