C Standard Library

C <wchar.h> - getwchar() Function



The C <wchar.h> getwchar() function returns the next wide character from the input stream stdin. It is equivalent to calling getwc() function with stdin as second argument.

If the sequence of bytes read cannot be interpreted as a valid wide character, the function returns WEOF and sets errno to EILSEQ.

If a reading error occurs, the function returns WEOF and sets the error indicator for the stream ferror().

If the stream is at end-of-file when the function is called, it returns WEOF and sets end-of-file indicator for the stream feof().

Syntax

wint_t getwchar();

Parameters

No parameter is required.

Return Value

  • On success, the character read is returned.
  • If the failure has been caused due to end-of-file condition, returns WEOF and sets the end-of-file indicator for the stream feof().
  • If a read error occurs, the function returns WEOF and sets the error indicator for the stream ferror().
  • If the sequence of bytes read cannot be interpreted as a valid wide character, the function returns WEOF and sets errno to EILSEQ.

Example:

The example below shows the usage of getwchar() function.

#include <wchar.h>
 
int main (){

  wint_t wc;

  //prints characters till the point
  //it encounters the first '@' character
  wprintf(L"Enter text (Include '@' in the sentence to exit):");
  do {
    wc = getwchar();
    putwchar(wc);
  } while (wc != L'@');
  
  return 0;
}

If the following inputs are entered:

John
25
London
John@example.com

The output will be:

John
25
London
John@

❮ C <wchar.h> Library