gpt4 book ai didi

c++ - 查找二进制文件中所有出现的字节序列

转载 作者:行者123 更新时间:2023-11-28 04:10:37 25 4
gpt4 key购买 nike

请帮助我了解如何使用 std::search 获取二进制文件中所有出现的 {0x00, 0x00, 0x00, 0x01}。

下面的代码找到第一个匹配项:

std::string NAL = "\x00\x00\x00\x01";
std::ifstream source("somedata.dat", std::ios::binary);
std::istream_iterator<unsigned char> begin(source), end, currNAL;
currNAL = std::search(begin, end, NAL.begin(), NAL.end());

我不明白如何在 while 循环中使用 std::search

最佳答案

由于 std::search() 返回第一次出现的迭代器,您可以只使用第一次出现作为您的(非包含)起点再次搜索。

while(currNAL != source.end()){
currNAL = std::search(++currNAL, end, NAL.begin(), NAL.end());
//Increment some counter here?
}

我应该指出,这是未经测试的代码,我并不是说这是针对您具体问题的精确解决方案,只是为了演示这个想法。

关于c++ - 查找二进制文件中所有出现的字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57894396/

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