Обектът clog в C ++ е обект от клас ostream. Той е свързан със стандартния поток за извеждане на грешки C stderr.
clog
и cerr
двете са свързани с stderr
, но се различава от това cerr
в смисъл, че потоците в clog
са буферирани и не са автоматично обвързани с cout
.
Буферираният изход е по-ефективен от буферирания изход. В случай на буфериран изход, всички изходи се записват в променлива и се записват на диск наведнъж. За буфериран изход трябва да продължим да записваме на диск.
Буферираният изход не е предпочитан за критични грешки. В случай на срив на системата може да възникне ситуация, когато изходът все още е в буфер и не е записан на диск и съобщението за грешка не може да бъде извлечено. Не можем да си позволим да загубим данни за грешки в случай на срив на системата, така че продължаваме да записваме критичните грешки на диск, въпреки че е по-бавен.
clog
обикновено се използва за целите на дърводобива. За некритично регистриране на събития ефективността е по-важна, така че clog
се предпочита да се потвърждава.
декларация за запушване
външно запушване на потока;
Определя се в заглавния файл "> заглавния файл.
В clog
обекта се осигурява да се инициализира по време на или преди първи път обект от тип ios_base::Init
е конструирана. clog
не е обвързан с друг поток.
"C" в clog се отнася до "character", следователно clog означава "log log".
Обектът clog се използва заедно с оператора за вмъкване (<<), за да се покаже поток от символи. Общият синтаксис е:
clog << varName;
или
clog << "Some String";
Операторът за извличане може да се използва повече от веднъж с комбинация от променливи, низове и манипулатори (като endl
):
clog << var1 << "Някакъв низ" << var2 << endl;
Пример: Как работи запушването?
#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; )
В тази програма clog се използва за поточно предаване на данните в дневника, тъй като грешката в този случай не е критична за приложението. Така че използването на буфериран изход на запушване е по-ефективно
Когато стартирате програмата, изходът ще бъде (ако има грешка при отваряне на файла):
Грешка при отваряне на файла data.txt