Partager via


_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é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

Console et port E/S

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

va_arg, va_copy, va_end, va_start

Paramètres positionnels printf_p