Clog objekt v C ++ je objekt třídy ostream. Je spojen se standardním výstupním proudem stderr chyby C.
clog
a cerr
, oba jsou spojeny s stderr
, ale liší se od toho cerr
v tom smyslu, že streamy clog
jsou 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ší.
clog
se běžně používá pro účely protokolování. Pro nekritické protokolování událostí je důležitější efektivita, proto clog
se dává přednost cerr.
ucpat prohlášení
vnější ostream ucpat;
Je definován v hlavičkovém souboru.
Je clog
zajištěno, že objekt bude inicializován během nebo před prvním vytvořením objektu typu ios_base::Init
. clog
není 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