abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 1
    dnes 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

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

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 6
    21.4. 19:11 | Komunita

    Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.

    Ladislav Hagara | Komentářů: 28
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (18%)
    Celkem 679 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: C++ promenna pro stdin

    1.3.2011 15:31 MArty
    C++ promenna pro stdin
    Přečteno: 235×
    Dobry den,

    program, ktery vytvarim muze svuj vstup nacitat bud ze souboru anebo ze stdin. To urcuje promenne ifileName do ktere pomoci getopt nacitam nazev vstupniho souboru. Pokud neni nazev vstupniho souboru zadan, je hodnota promenne ifileName NULL a cteme ze stdin. Nize uvadim kod, ktery toto resi. Jedna se defacto o skoro dva stejne bloky kodu, coz neni moc dobre. Muzete mi prosim poradit, jakym zpusobem tento fragment prepsat, abych oba bloku co nejvice sloucil? Nejlepe by bylo zavest jednu promennou, ktera by byla kompatibilni s ifstream i cin a z ni jednotne cetl znaky pomoci get().
        char *ifileName;
        ifstream ifile;
    
        ...
    
        // cteme ze stdin
        if (ifileName == NULL)
        {
            while (cin)
            {
                c = cin.get();
                if (c != EOF)
                {
                    HTInsert(&HT, c);
                }
            }
        }
        // cteme ze souboru
        else
        {
            ifile.open(ifileName);
            if (ifile.is_open())
            {
                while (ifile.good())
                {
                    c = ifile.get();
                    if (c != EOF)
                    {
                        HTInsert(&HT, c);
                    }
                }
                ifile.close();
            }
        }
    

    Řešení dotazu:


    Odpovědi

    1.3.2011 15:46 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: C++ promenna pro stdin
    1.3.2011 15:52 Sten
    Rozbalit Rozbalit vše Re: C++ promenna pro stdin
    std::ifstream a std::cin mají společného předka, std::istream:
    void ctiData(std::istream &stream)
    {
       ...
    }
    
    
    if (ifileName == NULL) {
        ctiData(std::cin);
    } else {
        std::ifstream file(ifileName);
        ctiData(file);
    }
    Btw. v Linuxu je standardní vstup dostupný jako /dev/stdin, tzn. lze udělat tohle:
    std::ifstream file(ifileName ? ifileName : "/dev/stdin");
    

    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.