如何在C++中读取二进制文件中的数组

How to read an array in a binary file in C++

本文关键字:二进制文件 数组 读取 C++      更新时间:2023-10-16

当前我使用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。如果必须使用数组,则语法非常相似。

读取和写入二进制图像的能力是不可移植的。您可能无法在另一台机器上重新读取数据,甚至无法在使用不同编译器的同一台机器中重新读取数据。但是,对于您现在使用的解决方案,您已经遇到了这个问题。