gpt4 book ai didi

c++ - 如何使用迭代器从文件中读取 n 个字节并将它们放入 vector 中?

转载 作者:行者123 更新时间:2023-11-30 01:37:02 25 4
gpt4 key购买 nike

基于这个问题:

How to read a binary file into a vector of unsigned chars

在他们的回答中:

std::vector<BYTE> readFile(const char* filename)
{
// open the file:
std::basic_ifstream<BYTE> file(filename, std::ios::binary);

// read the data:
return std::vector<BYTE>((std::istreambuf_iterator<BYTE>(file)),
std::istreambuf_iterator<BYTE>());
}

将整个文件读入 vector 。

我想做的是在 vector 中一次读取(例如)100 个字节,然后做一些事情,然后将接下来的 100 个字节读入 vector (清除 vector 之间的 vector )。我不知道如何指定要读取的文件量(即如何设置迭代器)。这可能吗?

我试图避免必须编写自己的代码循环来一次复制每个字节。

最佳答案

您可以使用 ifstream::read为此。

std::vector<BYTE> v(100);
while ( file.read(reinterpret_cast<char*>(v.data()), 100) )
{
// Find out how many characters were actually read.
auto count = file.gcount();

// Use v up to count BTYEs.
}

关于c++ - 如何使用迭代器从文件中读取 n 个字节并将它们放入 vector<uint8_t> 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50491833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com