C ++ upchatie - štandardná knižnica C ++

Zanášaný objekt v C ++ je objektom triedy ostream. Je spojená so štandardným výstupným prúdom chýb C stderr.

cloga cerr, obidve sú spojené s stderr, ale líši sa to cerrv tom zmysle, že streamy clogsú ukladané do vyrovnávacej pamäte a nie sú automaticky viazané cout.

Výstup v medzipamäti je efektívnejší ako výstup bez medzipamäte. V prípade výstupu s medzipamäťou sa všetok výstup uloží do premennej a zapíše sa na disk naraz. Pre výstup bez vyrovnávacej pamäte musíme pokračovať v zápise na disk.

Pre kritické chyby sa výstup v medzipamäti neuprednostňuje. V prípade zlyhania systému môže nastať situácia, že výstup bol stále v medzipamäti a nebol zapísaný na disk a chybové hlásenie sa nedá načítať. Nemôžeme si dovoliť stratiť údaje o chybách v prípade zlyhania systému, takže kritické chyby neustále zapisujeme na disk, aj keď je to pomalšie.

clogsa bežne používa na účely prihlásenia. Pri zaznamenávaní nekritických udalostí je dôležitejšia efektívnosť, preto clogsa uprednostňuje pred cerr.

upchatie deklarácie

 vonkajší ostream upchať;

Je definované v hlavičkovom súbore.

Je clogzaistené, že objekt je inicializovaný počas alebo pred prvou ios_base::Initkonštrukciou objektu typu . clognie je viazaný na žiadny iný prúd.

„C“ v upchávaní odkazuje na „znak“, preto upchatie znamená „protokol znakov“.

Objekt upchatia sa používa spolu s operátorom vloženia (<<) na zobrazenie toku znakov. Všeobecná syntax je:

 upchať << varName;

alebo

 upchať << "Some String";

Operátor extrakcie je možné použiť viackrát s kombináciou premenných, reťazcov a manipulátorov (napríklad endl):

 upchať << var1 << "Some String" << var2 << endl;

Príklad: Ako funguje upchatie?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else clog << "Error while opening the file " << fileName << endl; return 0; )

V tomto programe sa upchatie používa na streamovanie údajov protokolu, pretože chyba v tomto prípade nie je pre aplikáciu kritická. Takže použitie vyrovnávacieho výstupu upchatia je efektívnejšie

Po spustení programu bude výstup (ak sa vyskytne chyba pri otvorení súboru):

 Chyba pri otváraní súboru data.txt

Zaujímavé články...