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 05:11 | Zajímavý software

    Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 4
    dnes 03:22 | Nová verze

    Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

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

    LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.

    Ladislav Hagara | Komentářů: 1
    včera 21:11 | Komunita

    Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.

    Ladislav Hagara | Komentářů: 3
    včera 12:22 | Zajímavý software

    OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 03:00 | Komunita

    Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.

    Ladislav Hagara | Komentářů: 1
    31.1. 18:11 | Humor

    Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.

    NUKE GAZA! 🎆 | Komentářů: 3
    31.1. 18:00 | Humor

    scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.

    |🇵🇸 | Komentářů: 4
    30.1. 18:22 | Komunita

    O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.

    Ladislav Hagara | Komentářů: 4
    30.1. 18:00 | IT novinky

    Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (24%)
     (3%)
     (5%)
     (2%)
     (11%)
     (31%)
    Celkem 724 hlasů
     Komentářů: 22, poslední 29.1. 23:06
    Rozcestník

    Dotaz: Záměna souboru za standartní vstup v C++

    22.8.2006 21:59 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Záměna souboru za standartní vstup v C++
    Přečteno: 752×

    Lze v C++ pomocí nějakého proudu provést to, co lze takto jednoduše implementovat v C:

    int main (int argc, char *argv[]) {
      FILE *fp
    
      if (argc == 1)
        fp = stdin;
      else
        fp = fopen(argv[1], "r");
    
    
      /* tady uz pracuji s fp nezavisle na tom
         odkud beru data */
    
      c = fgetc(fp)
      ...
    

    Tzn. jak pomocí jednoho proudu neformátovaně číst data, ať už je vstupem standartní vstup nebo nějaký soubor?

    Každý má právo na můj názor!

    Odpovědi

    kozzi avatar 22.8.2006 22:17 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++
    no urcite to ma svoji funkci ale klidně muzes pouzit tuto
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    22.8.2006 22:29 machr | skóre: 2 | blog: machr
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++
    #include <iostream>
    #include <fstream>
    
    int main(int argc, char **argv) {
    	std::istream *_fp;
    	
    	if(argc == 1)
    		_fp = &std::cin;
    	else
    		_fp = new std::ifstream(argv[1]);
    
    	std::istream &fp = *_fp;
    
    	/* tady pracuju s fp jako s objektem istream */
    
    	int i;
    	fp >> i;
    
    
    	...
    
    (__) (oo) /-------\/ / | || * ||----|| ~~ ~~
    22.8.2006 23:00 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++

    Neměl byste pak ale zapomínat ten stream po sobě zlikvidovat, takže by to chtělo nějaký příznak, zda se to má udělat. Nebo by šlo použít něco jako

    #include <iostream>
    #include <fstream>
    #include <stdexcept>
    
    void process_stream(std::istream& fs)
    {
      std::cout << fs.rdbuf();
    }
    
    int main(int argc, char* argv[])
    {
      int ret = 0;
      if (argc < 2) {
        process_stream(std::cin);
      } else {
        for (int i=1; i<argc; i++) {
          std::ifstream fs(argv[i]);
          if (!fs) {
            std::cerr << "error: cannot open file " << argv[i] << std::endl;
            ret = 1;
            continue;
          }
          process_stream(fs);
        }
      }
      return ret;
    }
    
    22.8.2006 23:02 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++
    Případně je v záloze metoda hrubého násilí: použít dup2() :-)
    22.8.2006 23:36 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++

    Díky všem za náměty, nakonec to nebude koukám tak složitý. Nicméně systém streamů v C++ musel navrhovat chovanec Guatemalského ústavu pro choromyslné...

    Každý má právo na můj názor!
    22.8.2006 23:48 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++
    Proč myslíte?
    22.8.2006 23:53 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++

    V porovnání s céčkovským FILE * mi systém streamů v C++ přijde zbytečně složitý. Nicméně netvrdím, že pokud člověk do tohoto systému pronikne, nemůže být mocným nástrojem...

    Každý má právo na můj názor!
    23.8.2006 00:27 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Záměna souboru za standartní vstup v C++

    Ono je to složité hlavně na pohled. Když se to ale naučíte používat, udělá to strašně moc práce za vás. Viz třeba můj oblíbený

    #include <iostream>
    #include <locale>
    
    int main(int argc, char* argv[])
    {
      if (argc != 3) return 1;
      std::ios_base::sync_with_stdio(false);
      std::wcin.imbue(std::locale(argv[1]));
      std::wcout.imbue(std::locale(argv[2]));
      std::wcout << std::wcin.rdbuf();
      return 0;
    }
    

    (error handling si udělá laskavý čtenář za cvičení)

    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.