Täppobjektet i C ++ är ett objekt av klass ostream. Det är associerat med standard C-felutmatningsströmstoder.
clog
och cerr
båda är associerade med stderr
, men det skiljer sig från cerr
i den meningen att strömmarna clog
är buffrade och inte automatiskt knutna till cout
.
Buffrad utdata är effektivare än opuffert utdata. När det gäller buffrad utgång sparas all utdata i en variabel och skrivs till disk samtidigt. För obuffert utdata måste vi fortsätta skriva till disk.
Buffrad utdata föredras inte för kritiska fel. I händelse av systemkrasch kan det uppstå en situation där utdata fortfarande var i buffert och inte skrevs till disk och felmeddelandet inte kan hämtas. Vi har inte råd att tappa feldata i händelse av systemkrasch så vi fortsätter att skriva de kritiska felen till skivan trots att den är långsammare.
clog
används ofta för loggningsändamål. För icke-kritisk händelseloggning är effektivitet viktigare så det clog
föredras framför cerr.
täppdeklaration
extern ostream-täppa;
Det definieras i rubrikfil "> rubrikfil.
Det clog
ändamål säkerställs att initieras under eller före den första gången ett objekt av typen ios_base::Init
konstrueras. clog
är inte knuten till någon annan ström.
"C" i täppan hänvisar till "tecken", därav betyder täppa "teckenlogg".
Täppobjektet används tillsammans med insättningsoperatören (<<) för att visa en ström av tecken. Den allmänna syntaxen är:
täppa till << varName;
eller
täppa till << "Någon sträng";
Extraktionsoperatören kan användas mer än en gång med en kombination av variabler, strängar och manipulatorer (som endl
):
täppa till << var1 << "Någon sträng" << var2 << endl;
Exempel: Hur täppa fungerar?
#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 det här programmet används igensättning för att strömma loggdata eftersom felet i detta fall inte är kritiskt för applikationen. Så användning av buffrad utmatning av täppa är effektivare
När du kör programmet blir resultatet (om det finns fel när filen öppnas):
Fel när filen data.txt öppnades