如何在C++中读取二进制文件中的数组
How to read an array in a binary file in C++
当前我使用ifstream读取C++中的数组,通过对值进行循环读取并重新解释_cast。是否可以一次从二进制文件加载一个无符号int数组,而不进行循环?
非常感谢
是的,只需传递数组第一个元素的地址,以及以字节为单位的数组大小:
// Allocate, for example, 47 ints
std::vector<int> numbers(47);
// Read in as many ints as 'numbers' has room for.
inFile.read(&numbers[0], numbers.size()*sizeof(numbers[0]));
注意:我几乎从不使用原始数组。如果我需要一个看起来像数组的序列,我会使用std::vector
。如果必须使用数组,则语法非常相似。
读取和写入二进制图像的能力是不可移植的。您可能无法在另一台机器上重新读取数据,甚至无法在使用不同编译器的同一台机器中重新读取数据。但是,对于您现在使用的解决方案,您已经遇到了这个问题。
相关文章:
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- 无法在二进制文件中存储动态数组
- 将文件信息(字符数组)嵌入到编译的二进制文件中
- Python API用于解析包含数组格式的protobuf数据的二进制文件
- 如何使用QJSONARRAY在QT5(C )中解析JSON文件(数组)
- 二进制字符数组转换为字符串流并从缓冲区弹出
- 从二进制文件读取到数组:前面的任意数字
- 如果在执行过程中替换二进制文件,"const"数组是否驻留在内存中?
- (C++) 如何从要存储在结构数组中的二进制文件中读取.dat信息?
- 将数组保存到二进制文件不起作用 c++
- 在C 中编写二进制INT数组时,然后在MATLAB中读取
- 如何在C++中表示二进制字节数组数据
- 从文件/数组C++聚合数据
- C++中的二进制补码 - 数组下标的类型"int[int]"无效
- 将字符字符串转换为二进制值数组
- 我想要一个递归函数来检查使用二进制搜索数组的顺序
- 在c++中将二进制Char数组转换为整数和双精度数组
- c++从stdin中读取二进制字符数组
- 在二进制 2D 数组中查找唯一行