Format
#include <wchar.h> wint_t getwchar(void);
Language Level: ANSI, XPG4
getwchar reads the next multibyte character from
stdin, converts it to a wide character, and advances the
associated file position indicator for stdin. A call to getwchar
is equivalent to a call to getwc(stdin).
The behavior of getwchar is affected by the LC_CTYPE category of the current locale. If you change the category between subsequent read operations on the same stream, undefined results can occur.
Using non-wide-character functions with getwchar on STDIN results in undefined behavior.
Return Value
getwchar returns the next wide character
from stdin or WEOF. If getwchar encounters EOF, it sets the EOF
indicator for the stream and returns WEOF. If a read error
occurs, the error indicator for the stream is set and getwchar
returns WEOF. If an encoding error occurs during the conversion
of the multibyte character to a wide character, getwchar sets
errno to EILSEQ and returns WEOF.
Use ferror or feof to determine whether an error or an EOF condition occurred. EOF is only reached when an attempt is made to read past the last byte of data. Reading up to and including the last byte of data does not turn on the EOF indicator.
Example
This example uses getwchar to read wide
characters from the keyboard, then prints the wide characters.
#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <wchar.h>
int main(void)
{
wint_t wc;
errno = 0;
while (WEOF != (wc = getwchar()))
printf("wc = %lc\n", wc);
if (EILSEQ == errno) {
printf("An invalid wide character was encountered.\n");
exit(1);
}
return 0;
/***************************************************************
Assuming you enter: abcde^Z (note: ^Z is CNTRL-Z)
The output should be:
wc = a
wc = b
wc = c
wc = d
wc = e
***************************************************************/
}
![]()
fgetc -- Read a Character
_fgetchar -- Read
Single Character from stdin
getc - getchar --
Read a Character
_getch - _getche
-- Read Character from Keyboard
getwc -- Read
Wide Character from Stream
<wchar.h>