Fonctions vprintf

 

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

Chacune des fonctions vprintf prend un pointeur vers une liste d'arguments, puis met en forme et écrit les données fournies vers une destination particulière. Les fonctions diffèrent dans la validation des paramètres exécutée, que les fonctions acceptent les chaînes de caractères larges ou écrites sur un octet, la destination de sortie, et la prise en charge de la spécification de l'ordre dans lequel les paramètres sont utilisés dans la chaîne de format.

_vcprintf, _vcwprintfvfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_lvfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
vprintf, vwprintf_vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_lvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_lvsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l_vsnprintf, _vsnwprintf

Les fonctions vprintf sont semblables à leurs fonctions d'homologues comme indiqué dans le tableau suivant. Toutefois, chaque fonction vprintf reçoit un pointeur vers une liste d'arguments, alors que chacune des fonctions homologues acceptent une liste d'arguments.

Ces fonctions formatent les données pour la sortie vers les destination comme ce qui suit.

FonctionFonction homologuesDestination de sortieValidation de paramètrePrise en charge du paramètre positionnel
_vcprintf_cprintfconsoleContrôle du caractère null.non
_vcwprintf_cwprintfconsoleContrôle du caractère null.non
vfprintffprintfStreamContrôle du caractère null.non
vfprintf_pfprintf_pStreamContrôle du format null et valide.oui
vfprintf_sfprintf_sStreamContrôle du format null et valide.non
vfwprintffwprintfStreamContrôle du caractère null.non
vfwprintf_pfwprintf_pStreamContrôle du format null et valide.oui
vfwprintf_sfwprintf_sStreamContrôle du format null et valide.non
vprintfprintfStdoutContrôle du caractère null.non
vprintf_pprintf_pStdoutContrôle du format null et valide.oui
vprintf_sprintf_sStdoutContrôle du format null et valide.non
vwprintfwprintfStdoutContrôle du caractère null.non
vwprintf_pwprintf_pStdoutContrôle du format null et valide.oui
vwprintf_swprintf_sStdoutContrôle du format null et valide.non
vsprintfsprintfmémoire désignée par mémoire tamponContrôle du caractère null.non
vsprintf_psprintf_pmémoire désignée par mémoire tamponContrôle du format null et valide.oui
vsprintf_ssprintf_smémoire désignée par mémoire tamponContrôle du format null et valide.non
vswprintfswprintfmémoire désignée par mémoire tamponContrôle du caractère null.non
vswprintf_pswprintf_pmémoire désignée par mémoire tamponContrôle du format null et valide.oui
vswprintf_sswprintf_smémoire désignée par mémoire tamponContrôle du format null et valide.non
_vscprintf_vscprintfmémoire désignée par mémoire tamponContrôle du caractère null.non
_vscwprintf_vscwprintfmémoire désignée par mémoire tamponContrôle du caractère null.non
_vsnprintf_snprintfmémoire désignée par mémoire tamponContrôle du caractère null.non
_vsnwprintf_snwprintfmémoire désignée par mémoire tamponContrôle du caractère null.non

L'argument argptr est de type va_list, défini dans VARARGS.H et STDARG.H. La variable argptr doit être initialisée par va_start, et peut être réinitialisée par les appels suivants va_arg ; argptr pointe ensuite au début d'une liste d'arguments qui sont convertis et transmis à la sortie en fonction des caractéristiques correspondantes dans l'argument format. format a la même forme et fonction que l'argument format pour printf. Aucune de ces fonctions n'appelle va_end. Pour une description plus complète de chaque fonction vprintf, consultez la description de sa fonction homologue comme indiqué dans le tableau précédent.

_vsnprintf diffère de vsprintf car il n'écrit pas plus que nombre octets dans mémoire tampon.

Les versions de ces fonctions avec l'infixe w dans le nom sont des versions de caractères larges des fonctions correspondantes sans l'infixe w ; dans chacune de ces fonctions de caractères étendus, mémoire tampon et format sont des chaînes de caractères larges. Sinon, chaque fonction de caractères étendus se comporte de manière identique à sa fonction homologues dans SBCS.

Les versions de ces fonctions avec les suffixes _s et _p sont les versions les plus sécurisées. Ces versions valident les chaînes de format et génèrent une exception si la chaîne de format n'est pas correctement formée (par exemple, si des caractères de mise en forme non valides sont utilisés).

Les versions de ces fonctions avec le suffixe _p permettent de spécifier l'ordre dans lequel les arguments fournis sont substitués dans la chaîne de format. Pour plus d'informations, consultez Paramètres positionnels printf_p.

Pour vsprintf, vswprintf, _vsnprintf et _vsnwprintf, si une copie se produit entre des chaînes qui se chevauchent, le comportement est indéfini.

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. Si vous utilisez les versions sécurisées de ces fonctions (les suffixes _s ou _p ), une chaîne de format fournie par l'utilisateur peut lever une exception de paramètre non valide si la chaîne fournie par l'utilisateur contient des caractères de mise en forme non valides.

E/S de flux
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: