Об'єкт clog в C ++ є об'єктом класу ostream. Це пов'язано зі стандартним виводом помилок C потоку stderr.
clogі cerrобидва вони пов'язані з stderr, але це відрізняється від cerrтого, що потоки в clogбуферизовані і не пов'язані автоматично cout.
Буферизований вихід є більш ефективним, ніж негативний буфер. У разі буферизованого виводу весь вихідний файл зберігається у змінній і записується на диск відразу. Для буферизованого виводу ми повинні продовжувати записувати на диск.
Буферизований вихід не є кращим для критичних помилок. У разі аварії системи може виникнути ситуація, коли вихідні дані все ще були в буфері і не були записані на диск, а повідомлення про помилку неможливо отримати. Ми не можемо дозволити собі втратити дані про помилки у випадку аварії системи, тому ми продовжуємо записувати критичні помилки на диск, хоча це відбувається повільніше.
clogзазвичай використовується для лісозаготівлі. Для ведення журналу некритичних подій ефективність є більш важливою, тому clogпереважно це підтверджувати.
декларація про засмічення
зовнішній прохідний засмічення;
Це визначається у файлі заголовка "> файл заголовка.
clogОб'єкт гарантовано бути ініційовані під час або перед першим об'єктом типу ios_base::Initпобудований. clogне прив'язаний до будь-якого іншого потоку.
"C" у засорі відноситься до "символу", отже, clog означає "журнал символів".
Об'єкт clog використовується разом з оператором вставки (<<) для відображення потоку символів. Загальний синтаксис:
засмітити << varName;
або
clog << "Якась рядок";
Оператор вилучення можна використовувати кілька разів із комбінацією змінних, рядків та маніпуляторів (наприклад 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








