Pre-defined stream
Controls input from a stream buffer associated with the object stdin declared in <cstdio>.
None
#include <iostream> extern wistream wcin; 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.
// // wcin example #1 // #include <iostream> void main ( ) { using namespace std; int i; float f; wchar_t c; //read an integer, a float and a wide character from stdin wcin >> i >> f >> c; // output i, f and c to stdout wcout << i << endl << f << endl << c << endl; } // // wcin example #2 // #include <iostream> void main ( ) { using namespace std; wchar_t p[50]; // remove all the white spaces wcin >> ws; // read characters from stdin until a newline // or 49 characters have been read wcin.getline(p,50); // output the result to stdout wcout << p; }
When inputting " Grendel the monster" (newline) in the previous test, the output is: "Grendel the monster". The manipulator ws removes spaces.
basic_istream(3C++), iostream(3C++), basic_filebuf(3C++), cin(3C++), cout(3C++), cerr(3C++), clog(3C++), wcout(3C++), wcerr(3C++), wclog(3C++), ios_base(3C++), basic_ios(3C++)
Working Paper for Draft Proposed International Standard for Information Systems--Programming Language C++, Section 27.3.2
ANSI X3J16/ISO WG21 Joint C++ Committee