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

puts, _putws

Write a string to stdout.

int puts( 
   const char *str  
int _putws( 
   const wchar_t *str  


Output string.

Returns a nonnegative value if successful. If puts fails, it returns EOF; if _putws fails, it returns WEOF. If str is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, the functions set errno to EINVAL and return EOF or WEOF.

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

The puts function writes str to the standard output stream stdout, replacing the string's terminating null character ('\0') with a newline character ('\n') in the output stream.

_putws is the wide-character version of puts; the two functions behave identically if the stream is opened in ANSI mode. puts doesn't currently support output into a UNICODE stream.

Under Windows 2000 and later, _putwch writes Unicode characters using the current CONSOLE LOCALE setting.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined






Required header





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.


All versions of the C run-time libraries.

// crt_puts.c
/* This program uses puts to write a string to stdout.

#include <stdio.h>

int main( void )
   puts( "Hello world from puts!" );

Hello world from puts!