Section courante

A propos

Section administrative du site

VSPRINTF

Imprime dans une chaîne en format à partir de virtuel
Langage C stdio.h

Syntaxe

int vsprintf(char *tampon,const char *texte,va_list ptrargument);

Paramètres

Nom Description
tampon Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ recevant les données
texte 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.
ptrargument 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 à partir d'un tampon.

Algorithme

MODULE VSPRINTF(buffer, format, arguments)
   * Initialiser un pointeur va_list avec les arguments variables
   Initialiser va_list à arguments

   * Appeler vsprintf (ou une fonction interne similaire) pour formater la chaîne
   Appeler vfprintf(dummy_file, format, arguments)

   * Copier le résultat formaté dans le buffer
   Copier la chaîne formatée dans buffer

   * Terminer l'utilisation des arguments variables
   va_end(va_list)

Remarques

Exemple

Voici divers exemple d'affichages de format :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdarg.h>
  4.  
  5. void MyVSPrintF(const char * format, ...) {
  6.   va_list args;
  7.   char buffer[255];
  8.   va_start(args, format);
  9.   vsprintf(buffer,format, args);
  10.   puts(&buffer);
  11.   va_end(args);
  12. }
  13.  
  14. int main () {
  15.   MyVSPrintF("Boujour!");
  16.   MyVSPrintF("Entier %%i = %i",15);
  17.   MyVSPrintF("Hexadecimal %%x = %x",16);
  18.   MyVSPrintF("Octal %%o = %o",16);
  19.   MyVSPrintF("Chaine de caracteres %%s = %s","message");
  20.   MyVSPrintF("Reel %%f = %f",123.45);
  21.   MyVSPrintF("Reel %%f = %.2f",123.45);
  22.   return 0;
  23. }

on obtiendra le résultat suivant :

Boujour!
Entier %i = 15
Hexadecimal %x = 10
Octal %o = 20
Chaine de caracteres %s = message
Reel %f = 123.450000
Reel %f = 123.45

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 - vsprintf

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 736.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 293.

Dernière mise à jour : Mardi, le 28 juillet 2015