abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:44 | IT novinky

    Apple bez varování odstranil ze svého obchodu sociální síť VKontaktě i další aplikace skupiny VK, jako je VK Music nebo VK Video [Novinky.cz].

    Ladislav Hagara | Komentářů: 4
    dnes 14:22 | IT novinky

    V dubnu loňského roku představený poštovní klient Notion Mail bude 22. září ukončen.

    Ladislav Hagara | Komentářů: 2
    dnes 04:33 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | IT novinky

    Společnosti OpenAI a Broadcom oznámily čip optimalizovaný pro AI pojmenovaný Jalapeño.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové verzi 2.9. Hlavní novinkou je deno desktop pro převod Deno projektu na desktopovou aplikaci. Jedná se o alternativu k frameworkům Electron nebo Tauri.

    Ladislav Hagara | Komentářů: 2
    včera 15:44 | IT novinky

    Od zítra jsou Datové schránky oficiálně na nové adrese datovka.gov.cz. Adresa mojedatovaschranka.cz zůstává funkční do 27. srpna 2026, následně budou uživatelé automaticky přesměrováni na datovka.gov.cz.

    Ladislav Hagara | Komentářů: 3
    včera 13:44 | Nová verze

    Dolphin (Wikipedie), tj. open source multiplatformní emulátor herních konzolí GameCube a Wii od Nintenda, byl vydán ve verzi 2606. S podporou Game Boy Playeru.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Zajímavý software

    Vasudeva Kamath představil utilitu debvulns, alternativu k nativní utilitě debsecan, pro výpis zranitelností v Debianu. Navíc má především možnost výstupu ve strukturovaných formátech JSON a CSV. V plánu je exportér pro Prometheus.

    Ladislav Hagara | Komentářů: 0
    24.6. 21:44 | IT novinky

    Oficiální český státní eshop s elektronickými dálničními známkami nově najdete na edalnice.gov.cz. Doména gov.cz jasně potvrzuje, že jste na oficiálním státním webu [𝕏].

    Ladislav Hagara | Komentářů: 27
    24.6. 14:22 | Nová verze

    Byla vydána nová verze 4.8.0 interaktivního shellu fish (friendly interactive shell, Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (26%)
    Celkem 1995 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: c++ memory stream

    22.12.2018 23:12 rastos | skóre: 63 | blog: rastos
    c++ memory stream
    Přečteno: 529×
    Chcem si napísať knižnicu v C++, ktorej súčasťou by malo byť niečo ako javovské ByteArrayOutputStream. Potrebujem pomocou tej triedy zapisovať int8_t, int32_t, int64_t a char[] (aj obsahujúci nuly). Práve kvôli tým nulovým bajtom, ktoré sa tam môžu vyskytnúť, nevyhovuje ostringstream (nechcem ot znásilňovať a dúfať, že ostringstream bude správne pracovať aj s nulovými bajtami). Mal som pocit, že riešením by mohlo byť použitie streambuf - ale nejak sa v tom strácam. Musím si urobiť vlastnú triedu, ktorá dedí zo streambuf a sama si manažuje buffer? Alebo by to streambuf mal robiť sám? Alebo som úplne vedľa?

    Poznámka: nechcem použiť žiadnu ďalšiu knižnicu okrem STL.

    Řešení dotazu:


    Odpovědi

    23.12.2018 03:29 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: c++ memory stream
    Možná hledáš něco jako tohle (https://artofcode.wordpress.com/2010/12/12/deriving-from-stdstreambuf/) ale podle toho, jak přesně to má fungovat bych se zamyslel, zda se ti nevyplatí ten buffer management naimplementovat ručně.
    23.12.2018 10:26 Jardík
    Rozbalit Rozbalit vše Re: c++ memory stream
    Do ostringstream můžeš char[] normálně zapsat i s nulovými byte. Proč bys nemohl?
    ostream& strm;
    
    char mojepole[] = {0,1,0,2};
    strm.write(mojepole, sizeof(mojepole));
    
    A operátor <<, který výstupy formátuje (tam to asi nefunguje? protože se provede decay na char* a tam se očekává nulou ukončený string?), bych v tomto případě vůbec nepoužíval. Protože zapisuješ binární data, nejedná se o čitelný textový soubor, proto je veškeré formátování a s tím spojené problémy (závislost na bindnutém locale) blbost řešit.
    Řešení 1× (Jardík)
    Jardík avatar 24.12.2018 16:28 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: c++ memory stream
    Dovolím si ještě přiložit celý zkompilovatelný příklad pro tazatele.
    #include <iostream>
    #include <sstream>
    
    using namespace std;
    
    int main()
    {
        ostringstream strm;
        char mojepole[] = {0, 1, 0, 2};
        strm.write(mojepole, sizeof(mojepole));
        string s = strm.str();
    
        cout << "string length: " << s.size() << endl;
        for (char c : s)
        {
            cout << int(c) << ", ";
        }
        cout << endl;
    
        return 0;
    }
    
    Výstup je
    string length: 4
    0, 1, 0, 2,
    
    Věřím v jednoho Boha.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.