首页 > 解决方案 > 从二进制文件读取到vector.c++

问题描述

如何从二进制文件(字节,charC++中也称为 unsigned )读取到向量,跳过第一个数字为 unsignedint 32的值,因为第一个值也是向量的大小?

第一个值也是整个文件的大小。

标签: c++filevectorbinary

解决方案


你可以尝试这样的事情:

uint32_t data_size = 0;
data_file.read((char *) &data_size, sizeof(data_size));
std::vector<uint8_t> data(data_size);
data_file.read((char *) &data[0], data_size);

上面的代码片段首先从文件中读取数据的大小或数量。使用读入的数量值创建
A。 最后,将数据读入向量。 std::vector

编辑 1:内存映射文件
您可能需要考虑将数据文件作为内存映射文件打开。这是操作系统将文件视为内存的地方。您不必将数据存储在内存中,也不必将其读入。由于内存映射文件 API 因操作系统而异,因此您必须搜索操作系统 API 以了解如何使用该功能。


推荐阅读