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

Объект wcerr в C ++ - это объект класса ostream. Он связан со стандартным потоком вывода ошибок C stderr.

Разница между cerr и wcerr

cerrв качестве символьного типа использует char (узкий символ). Его можно использовать для символов ASCII и ANSI.

Для интернационализации нам нужны строки Unicode, которые не помещаются в char. wcerrиспользует wchar_t(широкий символ) и может использоваться для символов Юникода.

Разница между wcout и wcerr

Начинающие программисты на C ++ используют coutи wcoutдля отображения ошибки с помощью стандартного вывода для отладки своих программ, но всегда полезно использовать cerrи wcerrотображать ошибки.

Это связано с тем, что вместо того, чтобы отображать поток ошибок на экране, вы можете позже изменить поток ошибок, чтобы записать ошибки в файл.

декларация wcerr

 extern wostream wcerr; 

Он определен в заголовочном файле "> заголовочный файл.

Гарантируется, что wcerrобъект будет инициализирован во время или до первого создания объекта типа ios_base::Init. После создания wcerrобъекта выражение (wcerr.flags & unitbuf)не равно нулю, что означает, что любой вывод, отправленный этим объектам потока, немедленно сбрасывается в операционную систему. Также wcerr.tie() == &wcoutт.е. wcerr.tie()возвращается, &wcoutчто означает, что wcout.flush()выполняется перед любой операцией вывода wcerr.

«Wc» в wcerr выражении «широкий символ», а «err» означает «ошибка», следовательно, 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

Интересные статьи...