fonctionsvprintf
Chacune de ces fonctions vprintf
prend un pointeur désignant une liste d’arguments, puis met en forme et écrit les données fournies dans une destination particulière. Les fonctions diffèrent de plusieurs façons : dans la validation des paramètres, que les fonctions prennent des chaînes à caractères simples ou larges, la destination de sortie et la prise en charge de la spécification des paramètres d’ordre sont utilisées dans la chaîne de format.
_vcprintf
, _vcwprintf
vfprintf
, vfwprintf
_vfprintf_p
, _vfprintf_p_l
, _vfwprintf_p
, _vfwprintf_p_l
vfprintf_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_l
_vscprintf
, _vscprintf_l
, _vscwprintf
, _vscwprintf_l
_vsnprintf
, _vsnwprintf
vsprintf
, vswprintf
_vsprintf_p
, _vsprintf_p_l
, _vswprintf_p
, _vswprintf_p_l
vsprintf_s
, _vsprintf_s_l
, vswprintf_s
, _vswprintf_s_l
Notes
Les fonctions vprintf
sont semblables à leurs fonctions équivalentes, comme indiqué dans le tableau suivant. Toutefois, chaque fonction vprintf
accepte un pointeur vers une liste d’arguments, alors que chacune de ces fonctions équivalentes accepte une liste d’arguments.
Ces fonctions mettent en forme les données pour la sortie vers les destinations, comme suit.
Fonction | Fonction équivalente | Destination de sortie | Validation des paramètres | Prise en charge des paramètres positionnels |
---|---|---|---|---|
_vcprintf |
_cprintf |
console | Rechercher la valeur null. | non |
_vcwprintf |
_cwprintf |
console | Rechercher la valeur null. | non |
vfprintf |
fprintf |
stream |
Rechercher la valeur null. | non |
vfprintf_p |
fprintf_p |
stream |
Rechercher valeur null et format valide. | oui |
vfprintf_s |
fprintf_s |
stream |
Rechercher valeur null et format valide. | non |
vfwprintf |
fwprintf |
stream |
Rechercher la valeur null. | non |
vfwprintf_p |
fwprintf_p |
stream |
Rechercher valeur null et format valide. | oui |
vfwprintf_s |
fwprintf_s |
stream |
Rechercher valeur null et format valide. | non |
vprintf |
printf |
stdout |
Rechercher la valeur null. | non |
vprintf_p |
printf_p |
stdout |
Rechercher valeur null et format valide. | oui |
vprintf_s |
printf_s |
stdout |
Rechercher valeur null et format valide. | non |
vwprintf |
wprintf |
stdout |
Rechercher la valeur null. | non |
vwprintf_p |
wprintf_p |
stdout |
Rechercher valeur null et format valide. | oui |
vwprintf_s |
wprintf_s |
stdout |
Rechercher valeur null et format valide. | non |
vsprintf |
sprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
vsprintf_p |
sprintf_p |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | oui |
vsprintf_s |
sprintf_s |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | non |
vswprintf |
swprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
vswprintf_p |
swprintf_p |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | oui |
vswprintf_s |
swprintf_s |
mémoire pointée par buffer |
Rechercher valeur null et format valide. | non |
_vscprintf |
_vscprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vscwprintf |
_vscwprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vsnprintf |
_snprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
_vsnwprintf |
_snwprintf |
mémoire pointée par buffer |
Rechercher la valeur null. | non |
L’argument argptr
est de type va_list
, qui est défini dans les VARARGS.H et STDARG.H. La argptr
variable doit être initialisée par va_start et peut être réinitialisée par les appels suivants va_arg
. argptr
Elle pointe ensuite vers le début d’une liste d’arguments convertis et transmis pour la sortie en fonction des spécifications correspondantes de l’argument format
. format
a la même forme et la même fonction que l’argument format
pour printf
. Aucune de ces fonctions n’appelle va_end
. Pour obtenir une description plus complète de chaque fonction vprintf
, consultez la description de sa fonction équivalente, comme dans le tableau précédent.
_vsnprintf
diffère de vsprintf
celui dans lequel il écrit pas plus d’octets count
dans buffer
.
Les versions de ces fonctions avec l’infix w dans le nom sont des versions à caractères larges des fonctions correspondantes sans l’infix w ; dans chacune de ces fonctions à caractères larges et buffer
format
sont des chaînes à caractères larges. Dans le cas contraire, chaque fonction à caractères larges a un comportement identique à sa fonction SBCS équivalente.
Les versions de ces fonctions avec _s
et _p
suffixes sont les versions plus sécurisées. Ces versions valident les chaînes de format. Ils génèrent une exception si la chaîne de format n’est pas bien formée (par exemple, si des caractères de mise en forme non valides sont utilisés).
Les versions de ces fonctions avec le _p
suffixe vous 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 , et _vsnwprintf
, si la copie se produit entre des chaînes qui se chevauchent, le comportement n’est pas défini.
Important
Assurez-vous que format
n'est pas une chaîne définie par l'utilisateur. Pour plus d’informations, consultez Éviter les dépassements de mémoire tampon. Si vous utilisez les versions sécurisées de ces fonctions (le _s
ou _p
les suffixes), une chaîne de format fournie par l’utilisateur peut déclencher 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.
Voir aussi
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour