Clog objektas C ++ yra klasės ostream objektas. Tai siejama su standartine C klaidos išvesties srauto stderr.
clog
ir cerr
abu yra susieti stderr
, tačiau skiriasi nuo cerr
ta prasme, kad srautai clog
yra buferiniai ir nėra automatiškai susieti cout
.
Buferinė išvestis yra efektyvesnė už neparduotą išvestį. Buferinės išvesties atveju visa išvestis įrašoma į kintamąjį ir iš karto įrašoma į diską. Norėdami neišpirkti išvesties, turime toliau rašyti į diską.
Buferinis išėjimas nėra pageidaujamas dėl kritinių klaidų. Sistemos gedimo atveju gali atsirasti situacija, kai išvestis vis dar buvo buferyje ir nebuvo įrašyta į diską, o klaidos pranešimo nepavyksta atgauti. Negalime sau leisti prarasti klaidų duomenų sistemos gedimo atveju, todėl kritines klaidas nuolat rašome į diską, nors jie yra lėtesni.
clog
yra paprastai naudojamas medienos ruošos tikslams. clog
Nekritinių įvykių registravimui svarbesnis yra efektyvumas, todėl pirmenybė teikiama ne cerr.
užsikimšti deklaracija
išorinis ostream užkimšti;
Tai apibrėžiama antraštės faile "> header file.
clog
Užtikrinamas objektas turi būti inicializuoti metu arba prieš pirmą kartą, kurio tipas objektas ios_base::Init
yra sukonstruotas. clog
nėra pririštas prie jokios kitos srovės.
Klumpėje esantis „c“ reiškia „simbolį“, taigi klumpė reiškia „simbolių žurnalą“.
Užsikimšimo objektas naudojamas kartu su įterpimo operatoriumi (<<), kad būtų rodomas simbolių srautas. Bendroji sintaksė yra:
užkimšti << varName;
arba
užkimšti << "Kai kurios stygos";
Ištraukimo operatorius gali būti naudojamas daugiau nei vieną kartą kartu su kintamaisiais, eilutėmis ir manipuliatoriais (pvz. endl
):
klumpė << var1 << "Kai kurios stygos" << var2 << endl;
Pavyzdys: Kaip veikia klumpė?
#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; )
Šioje programoje žurnalo duomenims perduoti naudojamas klumpis, nes šiuo atveju klaida nėra kritinė programai. Taigi efektyviau naudoti buferinę klumpės produkciją
Kai paleisite programą, išvestis bus (jei yra klaida atidarant failą):
Klaida atidarant failą data.txt