Объект 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