_vcprintf_p, _vcprintf_p_l, _vcwprintf_p, _vcwprintf_p_l
Écrit le résultat mis en forme sur la console en utilisant un pointeur vers une liste d'arguments, et prend en charge les paramètres positionnels dans la chaîne de formatage.
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_p(
const char* format,
va_list argptr
);
int _vcprintf_p_l(
const char* format,
locale_t locale,
va_list argptr
);
int _vcwprintf_p(
const wchar_t* format,
va_list argptr
);
int _vcwprintf_p_l(
const wchar_t* format,
locale_t locale,
va_list argptr
);
Paramètres
format
La spécification de format.argptr
Un pointeur vers une 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. Si format est un pointeur null, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno est défini à la valeur EINVAL et -1 est retourné.
Notes
Chacune de ces fonctions prend un pointeur vers la liste argument, puis utilise la fonction _putch pour formater et écrire les données données à la console. (_vcwprintf_p utilise _putwch au lieu de _putch. _vcwprintf_p est la version à caractère élargi de _vcprintf_p. 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.
Chaque argument (le cas échéant) est converti et sorti selon la spécification de format correspondante dans format. La spécification de format prend en charge les paramètres positionnels afin que vous puissiez spécifier l'ordre dans lequel les arguments sont utilisés dans la chaîne de format. Pour plus d'informations, consultez Paramètres positionnels printf_p.
Ces fonctions ne traduisent pas de caractères de retour à la ligne dans des combinaisons (CR-LF) lorsqu'ils ressortent.
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. |
Ces fonctions valident le pointeur d'entrée et la chaîne de format. Si format ou argument est NULL, ou si la chaîne de format contient des caractères de mise en forme invalides, ces fonctions appellent un gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre . Si l'exécution est autorisée à se poursuivre, ces fonctions retournent -1 et attribuent à errno la valeur EINVAL.
Mappages de routines de texte générique
Routine Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_vtcprintf_p |
_vcprintf_p |
_vcprintf_p |
_vcwprintf_p |
_vtcprintf_p_l |
_vcprintf_p_l |
_vcprintf_p_l |
_vcwprintf_p_l |
Configuration requise
Routine |
En-tête requis |
---|---|
_vcprintf_p, _vcprintf_p_l |
<conio.h> et <stdarg.h> |
_vcwprintf_p, _vcwprintf_p_l |
<conio.h> et <stdarg.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité.
Exemple
// crt_vcprintf_p.c
// compile with: /c
#include <conio.h>
#include <stdarg.h>
// An error formatting function that's used to print to the console.
int eprintf(const char* format, ...)
{
va_list args;
va_start(args, format);
return _vcprintf_p(format, args);
}
int main()
{
int n = eprintf("parameter 2 = %2$d; parameter 1 = %1$s\r\n",
"one", 222);
_cprintf_s("%d characters printed\r\n");
}
Voir aussi
Référence
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l