Partager via


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

System::Console::Write

Voir aussi

Référence

E/S de flux

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