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

Об'єкт wclog в C ++ є об'єктом класу wostream. Це пов'язано зі стандартним виводом помилок C потоку stderr.

Різниця між засміченням та засміченням

забивати користувачів char (вузький символ) як тип символу. Його можна використовувати для символів ASCII та ANSI.

Для інтернаціоналізації нам потрібні рядки Unicode, які не відповідають символу char. wclog використовує wchar_t (широкий символ) і використовується для символів Unicode.

Різниця між wcerr та wclog

wclogі wcerrобидва вони пов'язані з stderr, але це відрізняється від wcerrтого, що потоки в wclogбуферизовані і не пов'язані автоматично wcout.

Буферизований вихід є більш ефективним, ніж негативний буфер. У разі буферизованого виводу весь вихідний файл зберігається у змінній і записується на диск відразу. Для буферизованого виводу ми повинні продовжувати записувати на диск.

Буферизований вихід не є кращим для критичних помилок. У разі аварії системи може виникнути ситуація, коли вихідні дані все ще були в буфері і не були записані на диск, а повідомлення про помилку неможливо отримати. Ми не можемо дозволити собі втратити дані про помилки у випадку аварії системи, тому ми продовжуємо записувати критичні помилки на диск, хоча це відбувається повільніше.

wclogзазвичай використовується для лісозаготівлі. Для ведення журналу некритичних подій ефективність є більш важливою, тому wclog віддають перевагу wcerr.

декларація wclog

 зовнішній потік wclog;

Це визначається у файлі заголовка "> файл заголовка.

wclogОб'єкт гарантовано бути ініційовані під час або перед першим об'єктом типу ios_base::Initпобудований. wclogне прив'язаний до будь-якого іншого потоку.

"Wc" у wclogозначає "широкий символ", отже wclogозначає "широкий журнал символів".

wclogоб'єкт використовується разом з оператором вставки (<<) для відображення потоку символів. Загальний синтаксис:

 wclog << varName;

або

 wclog << "Якийсь рядок";

Оператор вилучення можна використовувати кілька разів із комбінацією змінних, рядків та маніпуляторів (наприклад endl):

 wclog << var1 << «Якийсь рядок» << var2 << endl;

Приклад: Як працює wclog?

 #include #include using namespace std; int main() ( char fileName() = "data.txt"; wifstream infile(fileName); if(infile) wcout << infile.rdbuf(); else wclog << L"Error while opening the file " << fileName < 

When you run the program, a possible output will be (if there is error in opening the file):

 Error while opening the file data.txt

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