Nous recommandons d’utiliser Visual Studio 2017

_vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Écritures de mise en forme sur la console à l’aide d’un pointeur vers une liste d’arguments. Ces versions de _vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l ont des améliorations de sécurité, comme décrit dans fonctionnalités de sécurité de la bibliothèque CRT.

System_CAPS_ICON_important.jpg Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge avec /ZW.

int _vcprintf(  
   const char* format,  
   va_list argptr  
);  
int _vcprintf(  
   const char* format,  
   locale_t locale,  
   va_list argptr  
);  
int _vcwprintf_s(  
   const wchar_t* format,  
   va_list argptr  
);  
int _vcwprintf_s_l(  
   const wchar_t* format,  
   locale_t locale,  
   va_list argptr  
);  

Paramètres

format
Spécification de format.

argptr
Pointeur vers la liste d’arguments.

locale
Paramètres régionaux à utiliser.

Pour plus d’informations, consultez syntaxe de spécification de Format : fonctions printf et wprintf.

Le nombre de caractères écrits, ou une valeur négative en cas d’erreur de sortie.

Comme les versions moins sécurisées de ces fonctions, si format est un pointeur null, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. En outre, contrairement aux moins sécurisées versions de ces fonctions, si format ne spécifie pas un format valide, une exception de paramètre non valide est générée. Si l’exécution est autorisée à se poursuivre, ces fonctions retournent un code d’erreur et un ensemble errno à ce code d’erreur. Le code d’erreur par défaut est EINVAL si une valeur plus spécifique ne s’applique pas.

Chacune de ces fonctions prend un pointeur vers une liste d’arguments et puis met en forme et écrit les données spécifiées dans la console. _vcwprintf_s est la version à caractères larges de _vcprintf_s. Il prend une chaîne à caractères larges en tant qu’argument.

Les versions de ces fonctions qui ont le suffixe _l sont identiques, à ceci près qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux actifs.

System_CAPS_ICON_important.jpg Important

Assurez-vous que format n'est pas une chaîne définie par l'utilisateur. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_vtcprintf_s_vcprintf_s_vcprintf_s_vcwprintf_s
_vtcprintf_s_l_vcprintf_s_l_vcprintf_s_l_vcwprintf_s_l
RoutineEn-tête requisEn-têtes facultatifs
_vcprintf_s, _vcprintf_s_l<conio.h> et <stdarg.h><varargs.h>*
_vcwprintf_s, _vcwprintf_s_l<conio.h>or <wchar.h>, and <stdarg.h></stdarg.h></wchar.h></conio.h><varargs.h>*

*Requis pour la compatibilité UNIX v..

Pour plus d'informations sur la compatibilité, voir Compatibilité.

// crt_vcprintf_s.cpp  
#include <conio.h>  
#include <stdarg.h>  
  
// An error formatting function used to print to the console.  
int eprintf_s(const char* format, ...)  
{  
  va_list args;  
  va_start(args, format);  
  return _vcprintf_s(format, args);  
}  
  
int main()  
{  
   eprintf_s("  (%d:%d): Error %s%d : %s\n", 10, 23, "C", 2111,  
           "<some error text>");  
   eprintf_s("  (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).  

System::console::Write

Flux d’e/s
Fonctions vprintf
_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

Afficher: