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í
×

včera 16:55 | Komunita

Do 22. března se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 14. května do 14. srpna 2018, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 2
17.2. 15:44 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice dnes slaví 6 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně ale byla založena až 17. února 2012. Poslední lednový den byl vydán LibreOffice 6.0. Dle zveřejněných statistik byl za dva týdny stažen již cca milionkrát.

Ladislav Hagara | Komentářů: 1
17.2. 04:44 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že byla vydána nová verze 1.2.3 svobodného routovacího démona Quagga (Wikipedie) přinášející několik bezpečnostních záplat. Při nejhorší variantě může dojít až k ovládnutí běžícího procesu, mezi dalšími možnostmi je únik informací z běžícího procesu nebo odepření služby DoS. Konkrétní zranitelnosti mají následující ID CVE-2018-5378, CVE-2018-5379, CVE-2018-5380 a CVE-2018-5381.

Ladislav Hagara | Komentářů: 0
17.2. 00:22 | Pozvánky

V sobota 7. dubna proběhne v Brně na FIT VUT nekomerční konference Security Session '18 věnovaná novinkám a aktuálním problémům v oblasti bezpečnosti mobilních a informačních technologií. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 4. března. Spuštěna byla registrace.

Ladislav Hagara | Komentářů: 0
16.2. 23:55 | Nová verze

Byla vydána verze 1.10 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání. Zdůraznit lze vylepšené cachování buildů.

Ladislav Hagara | Komentářů: 0
15.2. 22:55 | Komunita

V sobotu 21. dubna proběhne v Bratislavě na Fakultě informatiky a informačních technologií STU konference Bratislava OpenCamp 2018. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 10. března. Spuštěna byla registrace.

Ladislav Hagara | Komentářů: 0
15.2. 21:22 | Nová verze

Byla vydána verze 1.24 programovacího jazyka Rust (Wikipedie). Z novinek vývojáři zdůrazňují nový nástroj rustfmt pro reformátování zdrojových kódů dle požadovaného programovacího stylu a inkrementální překlad. Více v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust By Example.

Ladislav Hagara | Komentářů: 7
15.2. 13:00 | Komunita

Desktopovému týmu Ubuntu by se hodilo více informací o desktopech uživatelů Ubuntu. V diskusním listu ubuntu-devel byl k diskusi předložen návrh řešení a seznam odesílaných informací. Ve výchozím stavu by mělo být odesílaní informací povoleno. Uživatel by měl mít možnost odesílaní kdykoli jednoduše zakázat [reddit].

Ladislav Hagara | Komentářů: 22
15.2. 05:55 | Komunita

V úterý 13. února vypršela platnost posledního patentu US 7,334,248 souvisejícího s MPEG-2 [Hacker News].

Ladislav Hagara | Komentářů: 22
15.2. 04:44 | Komunita

Organizace Electronic Frontier Foundation (EFF) na svém blogu oznámila, že otevřená certifikační autorita Let's Encrypt dosáhla dalšího milníku. Počet platných certifikátů překročil 50 milionů, viz statistiky. Cekově bylo vydáno již přes 217 milionů certifikátů.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (3%)
 (27%)
 (62%)
 (2%)
 (3%)
 (1%)
 (1%)
 (1%)
Celkem 352 hlasů
 Komentářů: 34, poslední 14.2. 18:44
    Rozcestník

    Dotaz: C++ a fstream

    lobodpav avatar 16.5.2005 21:01 lobodpav | skóre: 8 | Ostrava
    C++ a fstream
    Přečteno: 2289×
    Zdravím. Mám drobný problém, se kterým si nevím rady. Potřebuji otevřít soubor pro čtení i pro zápis a pokud neexistuje, tak jej vytvořit. Kód v příloze by to měl provést, ale soubor pouze vytvoří a nic do něj nezapíše...
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main() {
      // otevreni pro cteni i zapis
      fstream *dbFile = new fstream("file.txt", ios::in | ios::out | ios::binary);
      if (!dbFile->is_open()) { // soubor nelze otevrit
        cout << "Creating file" << endl;
        dbFile->open("file.txt", ios::out | ios::binary); // vytvoreni souboru
        if (!dbFile->is_open()) {
          cout << "Cannot create file" << endl;
          return 0;
        }
        dbFile->close();
        // otevreni pro cteni i zapis
        dbFile->open("file.txt", ios::in | ios::out | ios::binary);
        if (!dbFile->is_open()) {
          cout << "Cannot open file after create" << endl;
          return 0;
        }
        if (!dbFile->write("AABB", 4))
          cout << "Cannot write to file" << endl;
        dbFile->close();
      }
      else
        cout << "Opening file" << endl;
      delete dbFile;
      return 0;
    }
    

    Odpovědi

    16.5.2005 22:21 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: C++ a fstream
    Je potřeba zavolat dbFile->clear(), jinak po chybě odmítá spolupracovat. Taky to jde o něco zjednodušit.
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
      // jako fopen(..., "r+") => O_RDRW
      fstream *dbFile = new fstream("file.txt", ios::in | ios::out);
      if (!*dbFile) {
        dbFile->clear();
        // jako fopen(..., "w+") => O_RDRW | O_TRUNC | O_CREAT
        dbFile->open("file.txt", ios::in | ios::out | ios::trunc);
      }
      if (!*dbFile) {
        perror("file.txt");
        return 1;
      }
      if (!dbFile->write("AAXB", 4)) {
        perror("writing to file.txt");
        return 1;
      }
      dbFile->close();
      delete dbFile;
      return 0;
    }
    
    lobodpav avatar 17.5.2005 06:11 lobodpav | skóre: 8 | Ostrava
    Rozbalit Rozbalit vše Re: C++ a fstream
    Díky!!! O tom clear jsem se nikde nedočetl. Za ta zjednodušení taky díky.
    Když už jsme u C++, nevíte, zda se nedá sehnat nějaká dokumentace, jakou má např. Java API?? Nikde jsem nic podobného nenašel a dokumentace linuxu neobsahuje nic kolem C++ ...
    17.5.2005 07:33 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: C++ a fstream
    Hladas nieco taketo, taketo alebo taketo?
    lobodpav avatar 17.5.2005 08:06 lobodpav | skóre: 8 | Ostrava
    Rozbalit Rozbalit vše Re: C++ a fstream
    Ano. To jsou good odkazy :-)
    Díky!
    17.5.2005 10:59 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: C++ a fstream
    No, jak na to teď koukám, tak jsem to zjednodušil až moc, kdyby ten program hned neskončil, tak je samozřejmě potřeba delete dbFile; i při chybě (nebo mít dbFile na zásobníku...). Ale podstatné je to volání dbFile->clear() a to, že dbFile->open() stačí volat dvakrát.
    lobodpav avatar 17.5.2005 15:23 lobodpav | skóre: 8 | Ostrava
    Rozbalit Rozbalit vše Re: C++ a fstream
    Jojo, a odstranil jsi mi flag ios::binary, ale to jsou detaily...
    Hlavně, že mi to teď hezky běží :-) Dík.
    elviin avatar 17.5.2005 21:58 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
    Rozbalit Rozbalit vše Re: C++ a fstream

    twofish uz te zrejme uspokojil:). jen bych dodal pro inspiraci jine reseni:

    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    namespace {
      const string JMENO = "file.txt";   
    }
    
    
    int main() {
      fstream test;
       
      test.exceptions ( ifstream::eofbit | ifstream::failbit | ifstream::badbit );
      
      try {
        test.open ( JMENO.c_str(), ios::in | ios::out | ios::binary | ios::trunc);
      }
      catch (ifstream::failure &e) {
        cerr << e.what() << ":"<< endl; 
        perror ("Vyjimka otevreni/cteni ze souboru.");
        exit(1);
      }
    
      return 0;
    }
    

    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.