Anonymní profil Malý – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Malý – Programujte.comAnonymní profil Malý – Programujte.com

 

Příspěvky odeslané z IP adresy 2a0b:f4c2:4::108...–

Malý
C / C++ › STL Search, std::distance atd?
8. 8. 2025   #392334

 Seznamuji se s C++ respektive STL a dost v tom plavu.

Máme soubor pokus.dat a chceme v něm najit sekvenci čtyř bytů 0x58, 0x15, 0x16, 0x33.
A pokud v něm daná sekvence bytl je vypsat offset vyskytu prvního byte dané sekvence.
O kodu níže se domnívám, že by to snad i mohl dělat.
Nicmeně std::distance neumí pracovat s iterátorem res.

První otázka je co s tím?




 

LPCWSTR szVersionFile = L"pokus.dat";

std::ifstream is(szVersionFile, std::ios::binary);
if (!is)
    return -1;

 std::array<unsigned char, 4> ebml_id{ 0x58, 0x15, 0x16, 0x33 };

 auto res = std::search(std::istream_iterator<char>(is), std::istream_iterator<char>(), ebml_id.begin(), ebml_id.end());

 std::cout << "found at offset " << std::distance(ebml_id.begin(), res) << '\n';

 

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032025 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý