VFPRINTF |
Imprime dans fichier en format à partir de virtuel |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int vfprintf(FILE *stream,const char *format,va_list arg) |
Paramètres
Nom | Description | |
---|---|---|
stream | Ce paramètre permet d'indiquer l'identificateur de fichier | |
format | Ce paramètre permet d'indiquer le texte à écrire. Il est a noter que un ou plusieurs des spécificateurs suivants peuvent être inclus dans le texte et il utilisera un argument supplémentaire pour chaque spécificateurs : | |
Spécificateur | Description | |
%c | Ce spécificateur indique d'insérer à cette position un caractère contenu dans la liste des arguments après le texte | |
%d | Ce spécificateur indique d'insérer à cette position un entier sous forme décimal contenu dans la liste des arguments après le texte | |
%f | Ce spécificateur indique d'insérer à cette position un nombre à virgule flottante contenu dans la liste des arguments après le texte | |
%i | Ce spécificateur indique d'insérer à cette position un entier contenu dans la liste des arguments après le texte | |
%o | Ce spécificateur indique d'insérer à cette position un entier sous forme octal contenu dans la liste des arguments après le texte | |
%s | Ce spécificateur indique d'insérer à cette position une chaîne de caractères contenu dans la liste des arguments après le texte | |
%x | Ce spécificateur indique d'insérer à cette position un entier sous forme hexadécimal contenu dans la liste des arguments après le texte | |
Il est possible d'ajouter une précision du nombre décimal afficher en insérant le nombre entre le symbole de pourcentage et la lettre. | ||
arg | Ce paramètre permet d'indiquer le pointeur d'argument |
Description
Cette fonction effectue l'écriture de texte selon un certain format à l'aide de paramètre virtuel.
Remarques
- Les fonctions vprintf(), vfprintf() et vsprintf() sont fonctionnellement équivalentes à printf(), fprintf() et sprintf(), respectivement, sauf que la liste de paramètres a été remplacée par un pointeur vers une liste de paramètres. Ce pointeur doit être de type va_list, étant défini dans l'entête cstdarg (ou le fichier d'entête C stdarg.h).
- Définition et rôle : La fonction vfprintf est une fonction de la bibliothèque standard C permettant d'écrire des données formatées dans un flux de sortie. Elle est particulièrement utile lorsque vous avez déjà une liste de paramètres de type variable que vous souhaitez afficher. Contrairement à fprintf, prenant directement une liste de paramètre, vfprintf prend un va_list préalablement initialisé, ce qui facilite la gestion des paramètres variables dans les fonctions.
- Utilisation avec va_list : vfprintf est particulièrement utile dans les fonctions utilisant des paramètres variables. En utilisant va_start pour initialiser un va_list, puis vfprintf, un développeur peut passer des paramètres à une fonction d'impression sans avoir à gérer directement la liste des paramètres. Cela permet d'améliorer la lisibilité et la modularité du code, en évitant les manipulations explicites des paramètres.
- Retour de la fonction : La fonction vfprintf retourne le nombre de caractères écrits dans le flux de sortie, ou un nombre négatif en cas d'erreur. Cela permet au développeur de vérifier si l'opération d'écriture a réussi et d'obtenir des informations sur le nombre de caractères réellement écrits. Ce retour est utile pour la gestion des erreurs et le débogage, surtout lorsque l'écriture vers un fichier est impliquée.
- Gestion des erreurs : Comme vfprintf peut échouer pour diverses raisons (fichier non accessible, erreurs de format,...), il est essentiel de vérifier son retour. En cas d'erreur, le flux peut être mis dans un état d'erreur, et il peut être nécessaire de réinitialiser ou de nettoyer les ressources associées. Cela permet d'éviter des comportements inattendus dans le programme.
- Comparaison avec fprintf : vfprintf est souvent comparé à fprintf. La principale différence réside dans le fait que fprintf prend directement des arguments individuels, tandis que vfprintf utilise un va_list. Cela signifie que vfprintf est plus flexible pour les fonctions qui reçoivent un nombre variable de paramètres. Cette flexibilité rend vfprintf plus adapté pour les bibliothèques ou les fonctions encapsulant la logique d'impression dans d'autres appels.
- Applications pratiques : vfprintf est couramment utilisé dans des fonctions de journalisation personnalisées où le format des messages peut varier. Par exemple, une fonction de journalisation pourrait accepter une chaîne de format et un nombre variable d'arguments, puis les transmettre à vfprintf pour l'affichage ou l'écriture dans un fichier de journal de bord. Cette approche permet une plus grande souplesse dans le formatage et la gestion des messages.
- Portabilité : vfprintf est une fonction standard du langage de programmation C, ce qui signifie qu'elle est largement portable à travers différentes plateformes et compilateurs. Cela la rend utile pour les projets qui doivent fonctionner sur plusieurs systèmes d'exploitation. Cependant, comme pour toute fonction de la bibliothèque standard, il est recommandé de consulter la documentation spécifique à l'implémentation pour être conscient des détails particuliers pouvant affecter son comportement.
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - printf
Langage de programmation - C++ - Référence procédures et fonctions - va_arg
Langage de programmation - C++ - Référence procédures et fonctions - va_end
Langage de programmation - C++ - Référence procédures et fonctions - va_start
Langage de programmation - C - Référence procédures et fonctions - vfprintf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 290.
Dernière mise à jour : Lundi, le 3 août 2015