getchar, getwchar


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at 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
RoutineRequired header
getwchar<stdio.h> or <wchar.h>

The console is not supported in Windows 8.x 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 8.x 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 textInput was: This text  

Stream I/O
getc, getwc
fgetc, fgetwc
_getch, _getwch
putc, putwc
ungetc, ungetwc