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