C ++ tilstopning - C ++ standardbibliotek

Tilstopningsobjektet i C ++ er et objekt i klasse ostream. Det er associeret med standard C-fejloutput stream stderr.

clogog cerrbegge er associeret med stderr, men det adskiller sig fra cerri den forstand, at strømme ind cloger 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.

clogbruges almindeligvis til logning. For ikke-kritisk hændelseslogning er effektivitet vigtigere, så clogdet foretrækkes frem for cerr.

tilstoppelseserklæring

 ekstern ostream tilstopning;

Det er defineret i header-fil "> header-fil.

Det clogformål sikres initialiseres under eller før den første gang et objekt af typen ios_base::Initkonstrueres. cloger 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

Interessante artikler...