Maison > développement back-end > C++ > le corps du texte

Comment puis-je transmettre en toute sécurité des arguments variables à printf et sprintf ?

Barbara Streisand
Libérer: 2024-11-27 01:57:14
original
390 Les gens l'ont consulté

How Can I Safely Pass Variable Arguments to printf and sprintf?

Passer des arguments variables à printf/sprintf

Lors de la personnalisation du formatage des messages d'erreur ou d'autres textes dynamiques, il devient nécessaire de transmettre un nombre variable d'arguments à printf ou sprintf. Pour résoudre ce problème, envisagez la solution personnalisée suivante :

La clé réside dans l'appel de la fonction vfprintf, qui prend un nombre variable d'arguments. Voici un extrait de code présentant son utilisation :

void Error(const char* format, ...)
{
    va_list argptr;
    va_start(argptr, format);
    vfprintf(stderr, format, argptr);
    va_end(argptr);
}
Copier après la connexion

Dans ce code, vfprintf affiche le texte formaté sur stderr. Vous pouvez également utiliser vsnprintf pour enregistrer la sortie dans une chaîne. Gardez à l'esprit que l'utilisation de vsprintf est déconseillée en raison de sa sensibilité aux débordements de tampon.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal