Clog objekt v C ++ je objekt třídy ostream. Je spojen se standardním výstupním proudem stderr chyby C.
cloga cerr, oba jsou spojeny s stderr, ale liší se od toho cerrv tom smyslu, že streamy clogjsou ukládány do vyrovnávací paměti a nejsou automaticky svázány cout.
Výstup ve vyrovnávací paměti je efektivnější než výstup bez vyrovnávací paměti. V případě výstupu s vyrovnávací pamětí se veškerý výstup uloží do proměnné a zapíše se na disk najednou. U výstupu bez vyrovnávací paměti musíme pokračovat v zápisu na disk.
U kritických chyb se neupřednostňuje výstup ve vyrovnávací paměti. V případě selhání systému může nastat situace, kdy byl výstup stále ve vyrovnávací paměti a nebyl zapsán na disk a chybovou zprávu nelze načíst. Nemůžeme si dovolit přijít o chybová data v případě selhání systému, takže kritické chyby stále zapisujeme na disk, i když je pomalejší.
clogse běžně používá pro účely protokolování. Pro nekritické protokolování událostí je důležitější efektivita, proto clogse dává přednost cerr.
ucpat prohlášení
vnější ostream ucpat;
Je definován v hlavičkovém souboru.
Je clogzajištěno, že objekt bude inicializován během nebo před prvním vytvořením objektu typu ios_base::Init. clognení vázán na žádný jiný stream.
„C“ v ucpání odkazuje na „znak“, proto ucpání znamená „protokol znaků“.
Objekt clog se používá spolu s operátorem vložení (<<) za účelem zobrazení proudu znaků. Obecná syntaxe je:
ucpat << varName;
nebo
clog << "Some String";
Operátor extrakce lze použít více než jednou s kombinací proměnných, řetězců a manipulátorů (jako endl):
clog << var1 << "Some String" << var2 << endl;
Příklad: Jak ucpávání funguje?
#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 programu se ucpání používá ke streamování dat protokolu, protože chyba v tomto případě není pro aplikaci kritická. Efektivnější je tedy použití výstupu ucpaného do vyrovnávací paměti
Po spuštění programu bude výstup (pokud dojde k chybě při otevírání souboru):
Chyba při otevírání souboru data.txt








