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

 extern ostream 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

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