fputs, fputws


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at fputs, fputws.

Writes a string to a stream.


int fputs(   
   const char *str,  
   FILE *stream   
int fputws(   
   const wchar_t *str,  
   FILE *stream   


Output string.

Pointer to FILE structure.

Return Value

Each of these functions returns a nonnegative value if it is successful. On an error, fputs and fputws return EOF. If str or stream is a null pointer, these functions invoke the invalid parameter handler, as described in Parameter Validation. If execution is allowed to continue, these functions set errno to EINVAL and then fputs returns EOF, and fputws returns WEOF.

See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, error codes.


Each of these functions copies str to the output stream at the current position. fputws copies the wide-character argument str to stream as a multibyte-character string or a wide-character string according to whether stream is opened in text mode or binary mode, respectively. Neither function copies the terminating null character.

The two functions behave identically if the stream is opened in ANSI mode. fputs does not currently support output into a UNICODE stream.

Generic-Text Routine Mappings

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_fputts fputs fputs fputws


Function Required header
fputs <stdio.h>
fputws <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_fputs.c  
// This program uses fputs to write  
// a single line to the stdout stream.  
#include <stdio.h>  
int main( void )  
   fputs( "Hello world from fputs.\n", stdout );  
Hello world from fputs.  

.NET Framework Equivalent


See Also

Stream I/O
fgets, fgetws
gets, _getws
puts, _putws