Tilstopningsobjektet i C ++ er et objekt i klasse ostream. Det er associeret med standard C-fejloutput stream stderr.
clog
og cerr
begge er associeret med stderr
, men det adskiller sig fra cerr
i den forstand, at strømme ind clog
er bufret og ikke automatisk bundet med cout
.
Bufferoutput er mere effektivt end ikke-bufret output. I tilfælde af bufret output gemmes al output i en variabel og skrives til disken på én gang. For ubufret output skal vi fortsætte med at skrive til disken.
Buffered output foretrækkes ikke til kritiske fejl. I tilfælde af systemnedbrud kan der komme en situation, hvor output stadig var i buffer og ikke blev skrevet til disken, og fejlmeddelelsen ikke kan hentes. Vi har ikke råd til at miste fejldata i tilfælde af systemnedbrud, så vi fortsætter med at skrive de kritiske fejl på disken, selvom de er langsommere.
clog
bruges almindeligvis til logning. For ikke-kritisk hændelseslogning er effektivitet vigtigere, så clog
det foretrækkes frem for cerr.
tilstoppelseserklæring
ekstern ostream tilstopning;
Det er defineret i header-fil "> header-fil.
Det clog
formål sikres initialiseres under eller før den første gang et objekt af typen ios_base::Init
konstrueres. clog
er ikke bundet til nogen anden strøm.
"C" i tilstopning henviser til "tegn", derfor betyder tilstopning "tegnlog".
Tilstopningsobjektet bruges sammen med indsætningsoperatoren (<<) for at vise en strøm af tegn. Den generelle syntaks er:
tilstoppe << varName;
eller
tilstoppe << "Nogle strenge";
Ekstraktionsoperatøren kan bruges mere end én gang med en kombination af variabler, strenge og manipulatorer (som endl
):
tilstoppe << var1 << "Nogle strenge" << var2 << endl;
Eksempel: Hvordan træsko fungerer?
#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; )
I dette program bruges tilstopning til at streame logdata, fordi fejlen i dette tilfælde ikke er kritisk for applikationen. Så brugen af bufret output af tilstopning er mere effektiv
Når du kører programmet, vil output være (hvis der er fejl ved åbning af filen):
Fejl under åbning af filen data.txt