_vcprintf_s, _vcprintf_s_l, _vcwprintf_s, _vcwprintf_s_l
Écrit la sortie mise en forme à la console en utilisant un pointeur vers une liste d'arguments. Ces versions _vcprintf, _vcprintf_l, _vcwprintf, _vcwprintf_l présentent des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.
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.
Valeur de retour
Le nombre de caractères écrits, ou une valeur négative si une erreur de sortie se produit.
Comme le font leurs versions moins sécurisées, 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 au comportement des versions moins sécurisées 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 a l'autorisation de continuer, ces fonctions retournent un code d'erreur et affectent errno au code d'erreur. Le code d'erreur par défaut est EINVAL si une valeur plus spécifique ne s'applique pas.
Notes
Chacune de ces fonctions crée un pointeur vers une liste d'arguments, puis formatte et écrit les données données dans la console . _vcwprintf_s est la version à caractère élargi de _vcprintf_s. Elle prend comme argument une chaîne à caractères larges.
Les versions de ces fonctions avec le suffixe _l sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux du thread actuel.
Note de sécurité |
---|
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 & _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 |
Configuration requise
Routine |
En-tête requis |
En-têtes facultatifs |
---|---|---|
_vcprintf_s, _vcprintf_s_l |
<conio.h> et <stdarg.h> |
<varargs.h>* |
_vcwprintf_s, _vcwprintf_s_l |
<conio.h> ou <wchar.h>, et <stdarg.h> |
<varargs.h>* |
* Requis pour la compatibilité UNIX V.
Pour plus d'informations sur la compatibilité, consultez Compatibilité.
Exemple
// 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 );
}
Équivalent .NET Framework
Voir aussi
Référence
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l