Library: Input/output
A predefined stream that controls input from a stream buffer associated with the object stdin declared in <cstdio>
#include <iostream> namespace std { extern wistream wcin; }
The object wcin controls input from a stream buffer associated with the object stdin declared in <cstdio>. By default the standard C and C++ streams are synchronized, but performance improvement can be achieved by using the ios_base member function synch_with_stdio to desynchronize them.
After the object wcin is initialized, wcin.tie() returns &wcout, which implies that wcin and wcout are synchronized. wcin uses the locale codecvt facet to convert the tiny characters extracted from stdin to the wide characters stored in the wcin buffer.
Keep in mind that while the manipulator endl flushes the stream buffer, outputting the character L'\n' is not guaranteed to flush the stream buffer. You should output the L'\n' character without endl only if you do not need the buffer flushed. Note that outputting the L'\n' character in such cases, and hence not forcing a buffer flush, may result in a performance improvement. It greatly improves performance when C and C++ streams are not synchronized.
basic_istream, basic_iostream, basic_filebuf, cin, cout, cerr, clog, wcout, wcerr, wclog, ios_base, basic_ios
ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 27.3.2