A C ++ - ban lévő eltömődési objektum osztály ostream objektuma. A szabványos C hiba kimeneti adatfolyam stderrhez van társítva.
clog
és cerr
mindkettő társítva van stderr
, de abban cerr
az értelemben különbözik, hogy a beáramló csatornák clog
pufferolva vannak, és nem kapcsolódnak hozzájuk automatikusan cout
.
A pufferelt kimenet hatékonyabb, mint a nem pufferelt kimenet. Pufferelt kimenet esetén az összes kimenetet egy változóba menti és egyszerre lemezre írja. A nem csomagolt kimenethez folytatnunk kell a lemezre írást.
A pufferelt kimenet nem előnyös a kritikus hibák esetén. Rendszerösszeomlás esetén előfordulhat olyan helyzet, hogy a kimenet még mindig pufferben volt, és nem íródott lemezre, és a hibaüzenetet nem lehet lekérni. Nem engedhetjük meg magunknak, hogy rendszerhibák esetén elveszítsük a hibaadatokat, ezért a kritikus hibákat a lemezre írjuk, annak ellenére, hogy lassabbak.
clog
általában fakitermelés céljából használják. A nem kritikus eseménynaplózásnál fontosabb a hatékonyság, ezért clog
a cerr helyett ez az előnyös.
eldugulási nyilatkozat
extern ostream dugulás;
A "header file"> header fájlban van meghatározva.
Az clog
objektum inicializálása biztosított egy típusú objektum első ios_base::Init
építése során vagy azelőtt . clog
nincs kötve más folyamhoz.
Az eltömődött "c" a "karakterre" utal, ezért az eltömődés "karakternaplót" jelent.
Az eltömődési objektumot a beszúrás operátorral együtt használják (<<) a karakterfolyam megjelenítéséhez. Az általános szintaxis:
dugulás << varName;
vagy
dugulás << "Some String";
Az extrakciós operátor többször is használható változók, húrok és manipulátorok (például endl
) kombinációjával :
dugulás << var1 << "Néhány karakterlánc" << var2 << endl;
Példa: Hogyan működik az eltömődés?
#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; )
Ebben a programban a clogot használják a naplóadatok streamelésére, mert a hiba ebben az esetben nem kritikus az alkalmazás számára. Tehát a pufferolt puffer kimenet használata hatékonyabb
A program futtatásakor a kimenet a következő lesz (ha hiba történt a fájl megnyitása során):
Hiba történt a data.txt fájl megnyitásakor