The getwchar() function is the wide-character equivalent of the getchar(3) function. It reads a wide character from stdin and returns it. If the end of stream is reached, or if ferror(stdin) becomes true, it returns WEOF. If a wide-character conversion error occurs, it sets errno to EILSEQ and returns WEOF.
For a nonlocking counterpart, see unlocked_stdio(3).
The behavior of getwchar() depends on the LC_CTYPE category of the current locale.
It is reasonable to expect that getwchar() will actually read a multibyte sequence from standard input and then convert it to a wide character.