getchar, getwchar

Read a character from standard input.

int getchar();
wint_t getwchar();

Return Value

Returns the character read. To indicate a read error or end-of-file condition, getcharreturns EOF, and getwchar returns WEOF. For getchar, use ferror or feof to check for an error or for end of file.


Each routine reads a single character from stdin and increments the associated file pointer to point to the next character. getchar is the same as _fgetchar, but it is implemented as a function and as a macro.

These functions lock the calling thread and are therefore thread-safe. For a non-locking version, see _getchar_nolock, _getwchar_nolock.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined







Required header




<stdio.h> or <wchar.h>

The console is not supported in Windows Store apps. The standard stream handles associated with the console, stdin, stdout, and stderr, must be redirected before C run-time functions can use them in Windows Store apps. For additional compatibility information, see Compatibility in the Introduction.


// crt_getchar.c
// Use getchar to read a line from stdin.

#include <stdio.h>

int main()
    char buffer[81];
    int i, ch;

    for (i = 0; (i < 80) && ((ch = getchar()) != EOF)
                         && (ch != '\n'); i++)
        buffer[i] = (char) ch;

    // Terminate string with a null character 
    buffer[i] = '\0';
    printf( "Input was: %s\n", buffer);
  This text
Input was: This text

.NET Framework Equivalent

See Also


Stream I/O

getc, getwc

fgetc, fgetwc

_getch, _getwch

putc, putwc

ungetc, ungetwc