Standard C++ Library
Copyright 1998, Rogue Wave Software, Inc.
- Controls output to a stream buffer associated with the
object stderr declared in <cstdio>.
extern wostream wclog;
The object wclog controls output to a stream buffer associ-
ated with the object stderr declared in <cstdio>. The
difference between wclog and wcerr is that wclog is buf-
fered, but wcerr isn't. Therefore, commands like wclog <<
L"ERROR !!"; and fprintf(stderr,"ERROR !!"); are not syn-
chronized. wclog uses the locale codecvt facet to convert
the wide characters it receives to the tiny characters it
outputs to stderr.
The formatting is done through member functions or manipula-
tors. See cout, wcout or basic_ostream for details.
// wclog example
void main ( )
using namespace std;
// open the file "file_name.txt"
// for reading
// output the all file to stdout
if ( in )
wcout << in.rdbuf();
// if the wifstream object is in a bad state
// output an error message to stderr
wclog << L"Error while opening the file" << endl;
wclog can be used to redirect some of the errors to another
recipient. For example, you might want to redirect them to a
file named my_err:
if ( out )
cerr << "Error while opening the file" << endl;
Then when you are doing something like wclog << L"error
number x"; the error message is output to the file my_err.
You can use the same scheme to redirect wclog to other dev-
If your compiler does not support namespaces, then you do
not need the using declaration for std.
basic_filebuf(3C++), cout(3C++), cin(3C++), cerr(3C++),
clog(3C++), wcin(3C++), wcout(3C++), wcerr(3C++),
Working Paper for Draft Proposed International Standard for
Information Systems--Programming Language C++, Section
ANSI X3J16/ISO WG21 Joint C++ Committee