C ++ tukko - C ++ vakiokirjasto

Clog-objekti C ++: ssa on luokan ostream -objekti. Se liittyy normaaliin C-virheen ulostulovirtaan stderr.

clogja cerrmolemmat liittyvät stderr, mutta se eroaa cerrsiinä mielessä, että virtaukset clogovat puskuroituja eikä niihin ole automaattisesti sidottu cout.

Puskuroitu lähtö on tehokkaampaa kuin puskuroimaton lähtö. Puskuroidun lähdön tapauksessa koko lähtö tallennetaan muuttujaan ja kirjoitetaan levylle kerralla. Puskuroimattomalle lähdölle meidän on jatkettava kirjoittamista levylle.

Puskuroitua lähtöä ei suositella kriittisten virheiden varalta. Järjestelmän kaatumisen yhteydessä voi tulla tilanne, jossa lähtö oli edelleen puskurissa eikä sitä kirjoitettu levylle eikä virhesanomaa voida noutaa. Meillä ei ole varaa menettää virhetietoja järjestelmän kaatumisen yhteydessä, joten kirjoitamme kriittiset virheet levylle, vaikka ne ovatkin hitaampia.

clogkäytetään yleisesti hakkuutarkoituksiin. Ei-kriittisten tapahtumien kirjaamisessa tehokkuus on tärkeämpää, joten se clogon parempi kuin cerr.

tukkia ilmoitus

 ulkoinen ostream-tukkeuma;

Se määritetään otsikkotiedostossa "> header file.

clogTavoitteena on varmistettu alustaa aikana tai ennen ensimmäistä kertaa kohde tyyppi ios_base::Initon rakennettu. clogei ole sidottu mihinkään muuhun streamiin.

"C" tukossa viittaa "merkkiin", joten tukos tarkoittaa "merkkilokia".

Tukosobjektia käytetään yhdessä lisäysoperaattorin (<<) kanssa merkkivirran näyttämiseksi. Yleinen syntakse on:

 tukkia << varName;

tai

 tukkia << "Jotkut merkkijonot";

Puraoperaattoria voidaan käyttää useammin kuin kerran muuttujien, merkkijonojen ja manipulaattoreiden (kuten endl) yhdistelmän kanssa:

 tukkia << var1 << "Jotkut merkkijonot" << var2 << endl;

Esimerkki: Kuinka tukko toimii?

 #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; )

Tässä ohjelmassa lokitietojen suoratoistoon käytetään tukoksia, koska virhe tässä tapauksessa ei ole kriittinen sovellukselle. Joten puskuroidun tukoksen tuotos on tehokkaampaa

Kun suoritat ohjelmaa, tulos on (jos tiedoston avaamisessa on virhe):

 Virhe avattaessa tiedostoa data.txt

Mielenkiintoisia artikkeleita...