This documentation is archived and is not being maintained.

getchar, getwchar

Reads a character from standard input.

int getchar();
wint_t getwchar();

Returns the character read. To indicate a read error or end-of-file condition, getchar returns 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 that are 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.

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