## wcin

    Pre-defined stream

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

### Summary

Controls input from a stream buffer associated with the object `stdin` declared in `<cstdio>.`

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

None

### Synopsis

    #include <iostream>
    extern wistream wcin;
    wistream wcin;

### Description

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.

### Example

    //
    // 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.

### See Also

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

### 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