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