C ++ clog - Стандартна бібліотека C ++

Об'єкт 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

Цікаві статті...