Maison > développement back-end > C++ > Comment passer un nombre variable d'arguments à printf/sprintf en C et C ?

Comment passer un nombre variable d'arguments à printf/sprintf en C et C ?

Barbara Streisand
Libérer: 2024-11-28 17:09:11
original
769 Les gens l'ont consulté

How to Pass a Variable Number of Arguments to printf/sprintf in C and C  ?

Passer des arguments variables à Printf/Sprintf

En C et C , les fonctions printf et sprintf sont utilisées pour l'impression et l'écriture formatées. Ces fonctions permettent de spécifier une chaîne de format qui contrôle la façon dont les arguments suivants sont imprimés. Cependant, il peut y avoir des cas où le nombre d'arguments à imprimer n'est pas connu à l'avance. Cela pose la question de savoir comment passer un nombre variable d'arguments à ces fonctions.

Solution utilisant vfprintf

La bibliothèque C standard fournit la fonction vfprintf, qui peut gérer un nombre variable d'arguments. Il faut deux arguments obligatoires :

  • format : Un pointeur vers la chaîne de format.
  • argptr : Une va_list qui contient la variable arguments.

L'extrait de code suivant montre comment utiliser vfprintf :

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 cet exemple, la fonction Error prend une chaîne de format comme premier argument et un nombre arbitraire d'arguments supplémentaires. Ces arguments sont accessibles via la va_list, qui est initialisée à l'aide de va_start. La fonction vfprintf est ensuite appelée avec la chaîne de format et la va_list. Enfin, va_end est utilisé pour nettoyer la va_list.

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