## wclog

    Pre-defined stream

- Summary
- Data Type and Member Function Indexes
- Synopsis
- Description
- Formatting
- Example
- Warnings
- See Also
- Standards Conformance

### Summary

Controls output to a stream buffer associated with the object `stderr` declared in `<cstdio>`.

### Data Type and Member Function Indexes
(exclusive of constructors and destructors)

None

### Synopsis

    #include <iostream>
    extern wostream wclog;
    wostream wclog;

### Description

The object `wclog` controls output to a stream buffer associated with the object `stderr` declared in `<cstdio>`. The difference between `wclog` and `wcerr` is that `wclog` is buffered, but `wcerr` isn't. Therefore, commands like `wclog << L"ERROR !!";` and `fprintf(stderr,"ERROR !!");` are not synchronized. `wclog` uses the locale `codecvt` facet to convert the wide characters it receives to the tiny characters it outputs to `stderr`.

### Formatting

The formatting is done through member functions or manipulators. See cout, wcout or basic_ostream for details.

### Example

    //
    // wclog example
    //
    #include<iostream>
    #include<fstream>

    void main ( )
    {
      using namespace std;

      // open the file "file_name.txt"
      // for reading
      wifstream in("file_name.txt");

      // output the all file to stdout
      if ( in )
        wcout << in.rdbuf();
      else
        // if the wifstream object is in a bad state
        // output an error message to stderr
        wclog << L"Error while opening the file" << endl;
    }

### Warnings

`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`:

    wofstream out("my_err");
    if ( out )
      wclog.rdbuf(out.rdbuf());
    else
      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 devices.

If your compiler does not support namespaces, then you do not need the using declaration for `std`.

### See Also

basic_ostream(3C++), iostream(3C++), basic_filebuf(3C++), cout(3C++), cin(3C++), cerr(3C++), clog(3C++), wcin(3C++), wcout(3C++), wcerr(3C++), iomanip(3C++), ios_base(3C++), basic_ios(3C++)

Working Paper for Draft Proposed International Standard for Information Systems--Programming Language C++, Section 27.3.2

### Standards Conformance

ANSI X3J16/ISO WG21 Joint C++ Committee

Copyright (c) 1998, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.
OEM Release, June 1998