_vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l

 

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 _vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l.

Writes formatted output to the console by using a pointer to a list of arguments. More secure versions of these functions are available, see _vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l.

Important

This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW.

Syntax

int _vcprintf(  
   const char* format,  
   va_list argptr  
);  
int _vcprintf_l(  
   const char* format,  
   locale_t locale,  
   va_list argptr  
);  
int _vcwprintf(  
   const wchar_t* format,  
   va_list argptr  
);  
int _vcwprintf_l(  
   const wchar_t* format,  
   locale_t locale,  
   va_list argptr  
);  

Parameters

format
Format specification.

argptr
Pointer to list of arguments.

locale
The locale to use.

For more information, see Format Specifications.

Return Value

The number of characters written, or a negative value if an output error occurs. If format is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, errno is set to EINVAL and -1 is returned.

Remarks

Each of these functions takes a pointer to an argument list, then formats and writes the given data to the console. _vcwprintf is the wide-character version of _vcprintf. It takes a wide-character string as an argument.

The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current locale.

Important

Ensure that format is not a user-defined string. For more information, see Avoiding Buffer Overruns.

Generic-Text Routine Mappings

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_vtcprintf _vcprintf _vcprintf _vcwprintf
_vtcprintf_l _vcprintf_l _vcprintf_l _vcwprintf_l

Requirements

Routine Required header Optional headers
_vcprintf, _vcprintf_l <conio.h> and <stdarg.h> <varargs.h>*
_vcwprintf, _vcwprintf_l <conio.h> or <wchar.h>, and <stdarg.h> <varargs.h>*

* Required for UNIX V compatibility.

For additional compatibility information, see Compatibility.

Example

// crt_vcprintf.cpp  
// compile with: /c  
#include <conio.h>  
#include <stdarg.h>  
  
// An error formatting function used to print to the console.  
int eprintf(const char* format, ...)  
{  
  va_list args;  
  va_start(args, format);  
  return _vcprintf(format, args);  
}  
  
int main()  
{  
   eprintf("  (%d:%d): Error %s%d : %s\n", 10, 23, "C", 2111,  
           "<some error text>");  
   eprintf("  (Related to symbol '%s' defined on line %d).\n",  
           "<symbol>", 5 );  
}  
(10,23): Error C2111 : <some error text>  
  (Related to symbol '<symbol>' defined on line 5).  

.NET Framework Equivalent

System::Console::Write

See Also

Stream I/O
vprintf Functions
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
va_arg, va_copy, va_end, va_start