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

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

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

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

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

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

Початківці програмісти на C ++ використовують coutі wcoutдля відображення помилки, використовуючи стандартний вивід для налагодження своїх програм, але завжди є гарною практикою використовувати cerrі wcerrвідображати помилки.

Це пов’язано з тим, що замість показу потоку помилок на екрані, ви можете згодом змінити потік помилок, щоб записати помилки у файл.

декларація wcerr

 зовнішній wostream wcerr; 

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

wcerrОб'єкт гарантовано бути ініційовані під час або перед першим об'єктом типу ios_base::Initпобудований. Після wcerrпобудови об'єкта вираз (wcerr.flags & unitbuf)не дорівнює нулю, що означає, що будь-який вихід, що надсилається до цих об'єктів потоку, негайно змивається з операційною системою. Також wcerr.tie() == &wcoutтобто wcerr.tie()повертає, &wcoutщо означає, що wcout.flush()виконується перед будь-якою операцією виводу на wcerr.

"Wc" у wcerr посилається на "широкий символ", а "помилка" означає "помилка", отже, wcerr означає "помилка широкого символу". wcerrОб'єкт використовується разом з оператором вставки (<<) для того , щоб відобразити потік символів. Загальний синтаксис:

 wcerr << varName;

або

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

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

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

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

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

Під час запуску програми буде виведено: (якщо файл не вдалося відкрити)

 Помилка під час відкриття файлу data.txt

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