We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

_fputchar, _fputwchar

Writes a character to stdout.

int _fputchar(
   int c 
wint_t _fputwchar(
   wchar_t c 


Character to be written.

Each of these functions returns the character written. For _fputchar, a return value of EOF indicates an error. For _fputwchar, a return value of WEOF indicates an error. If c is NULL, these functions generate an invalid parameter exception, as described in Parameter Validation. If execution is allowed to continue, they return EOF(orWEOF) and set errno to EINVAL.

For more information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

Both of these functions writes the single character c to stdout and advances the indicator as appropriate. _fputchar is equivalent to fputc(stdout ). It is also equivalent to putchar, but implemented only as a function, rather than as a function and a macro. Unlike fputc and putchar, these functions are not compatible with the ANSI standard.

Generic-Text Routine Mappings

Tchar.h routine

_UNICODE and _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 more compatibility information, see Compatibility in the Introduction.

// crt_fputchar.c
// This program uses _fputchar
// to send a character array to stdout.

#include <stdio.h>

int main( void )
    char strptr[] = "This is a test of _fputchar!!\n";
    char *p = NULL;

    // Print line to stream using _fputchar. 
    p = strptr;
    while( (*p != '\0') && _fputchar( *(p++) ) != EOF )
This is a test of _fputchar!!