Tetteobjektet i C ++ er et objekt av klasse ostream. Det er assosiert med standard C-feilutgangsstrøm stderr.
clog
og cerr
begge er assosiert med stderr
, men det skiller seg fra cerr
i den forstand at strømmer i clog
er bufret og ikke automatisk bundet med cout
.
Bufret utgang er mer effektiv enn ubuffert utgang. I tilfelle buffert utdata lagres all utdata i en variabel og skrives til disken samtidig. For ubuffert utgang må vi fortsette å skrive til disken.
Buffered output er ikke foretrukket for kritiske feil. I tilfelle systemkrasj kan det oppstå en situasjon der utdataene fremdeles var i buffer og ikke ble skrevet til disken, og feilmeldingen ikke kan hentes. Vi har ikke råd til å miste feildata i tilfelle systemkrasj, så vi fortsetter å skrive de kritiske feilene på platen, selv om de er tregere.
clog
brukes ofte til loggføringsformål. For ikke-kritisk hendelseslogging er effektivitet viktigere, så clog
det foretrekkes fremfor cerr.
tetteerklæring
ekstern ostream tette;
Den er definert i topptekstfil "> topptekstfil.
Den clog
gjenstand er sikret som skal initialiseres under eller før den første gang et objekt av typen ios_base::Init
er konstruert. clog
er ikke bundet til noen annen strøm.
"C" i tette refererer til "tegn", og dermed betyr tette "tegnlogg".
Tetteobjektet brukes sammen med innsettingsoperatoren (<<) for å vise en strøm av tegn. Den generelle syntaksen er:
tette << varName;
eller
tette << "Noen strenger";
Utvinningsoperatøren kan brukes mer enn en gang med en kombinasjon av variabler, strenger og manipulatorer (som endl
):
tette << var1 << "Noen strenger" << var2 << endl;
Eksempel: Hvordan tette 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 programmet brukes tette til å streame loggdataene fordi feilen i dette tilfellet ikke er kritisk for applikasjonen. Så bruk av bufret utgang av tette er mer effektiv
Når du kjører programmet, vil utdataene være (hvis det er feil i å åpne filen):
Feil under åpning av filen data.txt