SPRINTF |
Chaine d'impression formatté |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int sprintf(char *tampon,const char *texte,...) |
Paramètres
Nom | Description | |
---|---|---|
tampon | Ce paramètre permet d'indiquer le tampon recevant les données | |
texte | Ce paramètre permet d'indiquer le texte à écrire dans le tampon. 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. |
Retour
Valeur | Description |
---|---|
0 ou supérieur | Ces valeurs permettent d'indiquer la longueur du tampon généré après le formatage. |
Description
Cette fonction permet d'effectuer l'écriture de texte selon un certain format à partir d'un tampon.
Remarques
- Il faut s'assurer que le tampon recevant les données soit assez grand pour recevoir le contenu demandé. Toutefois, il est très difficile d'anticiper la taille qu'aura le résultat avec le formatage de données. Cependant, on devrait prévoir au moins 6 caractères pour un entier court, 20 caractères par un entier long, 30 pour des nombres réels et faire un calcul avec strlen dans le cas d'une chaîne de caractères à y introduire.
- Le comportement de cette fonction est similaire à la fonction «printf» sauf qu'il retourne son résultat dans une chaîne de caractères plutôt que de l'afficher.
- Après le paramètre de formatage, la fonction attend au moins un nombre égale ou supérieur de paramètres que le nombre de «%i», «%c»,... réunit.
- Il peut être judicieux d'utiliser plusieurs fois cette fonction pour préparer par morceaux de pièces trop complexes pour une simple fonction «printf».
- Contrairement à ce que l'on pourrait croire, cette fonction n'est pas définie dans l'entête «cstring» mais plutôt dans «cstdio».
- Si votre compilateur de langage de programmation C ou C++ supporte la fonction «snprintf», il serait plutôt préférable d'utiliser cette fonction. Malheureusement, elle n'a été incluse quand dans le standard C++ de 2011, il n'est donc pas nécessairement supporté sur votre plate-forme.
Exemple
Voici divers exemple d'affichages de format :
Essayer maintenant !
- #include <iostream>
- #include <cstdio>
-
- int main()
- {
- char Temp[255];
- sprintf(Temp,"Boujour!");
- std::cout << Temp << std::endl;
- sprintf(Temp,"Entier %%i = %i",15);
- std::cout << Temp << std::endl;
- sprintf(Temp,"Hexadecimal %%x = %x",16);
- std::cout << Temp << std::endl;
- sprintf(Temp,"Octal %%o = %o",16);
- std::cout << Temp << std::endl;
- sprintf(Temp,"Chaine de caracteres %%s = %s","message");
- std::cout << Temp << std::endl;
- sprintf(Temp,"Reel %%f = %f",123.45);
- std::cout << Temp << std::endl;
- sprintf(Temp,"Reel %%f = %.2f",123.45);
- std::cout << Temp << std::endl;
- return 0;
- }
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 de procédures et fonctions - fprintf
Langage de programmation - C++ - Référence de procédures et fonctions - printf
Langage de programmation - C - Référence de procédures et fonctions - sprintf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 248.
Dernière mise à jour : Lundi, le 3 août 2015