PRINTF |
Impression avec format |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int printf(const char *format,...) |
Paramètres
Nom | Description | |
---|---|---|
format | Ce paramètre permet d'indiquer le texte à afficher. 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. |
Description
Cette fonction effectue l'écriture de texte selon un certain format sur la console.
Remarques
- La fonction printf() écrit pour stdout (sortie standard) les paramètres composant la liste de paramètres comme spécifié par la chaîne de caractères pointée par format.
- La chaîne de caractères pointée par format se compose de deux types d'éléments. Le premier type est composé de caractères étant affichés à l'écran. Le deuxième type contient des spécificateurs de format définissant la façon dont les paramètres sont affichés. Un spécificateur de format commence par un signe de pourcentage et est suivi du code de format. Il doit y avoir exactement le même nombre de paramètres qu'il y a de spécificateurs de format, et les spécificateurs de format et les paramètres sont mis en correspondance dans l'ordre.
- S'il n'y a pas suffisamment de paramètres pour correspondre aux spécificateurs de format, la sortie n'est pas définie. S'il y a plus de paramètres que de spécificateurs de format, les paramètres restants sont ignorés.
- La fonction printf() renvoie le nombre de caractères réellement affichés. Une valeur de retour négative indique qu'une erreur s'est produite.
- Les codes de format peuvent avoir des modificateurs spécifiant la largeur du champ, la précision et un indicateur de justification à gauche. Un entier placé entre le signe «%» et le code de format agit comme un spécificateur de largeur de champ minimum. Cette situation remplit la sortie avec des espaces ou des 0 pour garantir qu'elle est au moins d'une certaine longueur minimale. Si la chaîne de caractères ou le nombre est supérieur à ce minimum, il sera affiché en entier, même s'il dépasse le minimum. Le remplissage par défaut se fait avec des espaces. Si vous souhaitez ajouter des 0, placez un 0 avant le spécificateur de largeur de champ. Par exemple, %05d remplira un nombre de moins de cinq chiffres avec des 0 pour que sa longueur totale soit de 5.
- La signification exacte du modificateur de précision dépend du code de format en cours de modification. Pour ajouter un modificateur de précision, placez une virgule décimale suivie de la précision après le spécificateur de largeur de champ. Pour les formats e, E et f, le modificateur de précision détermine le nombre de décimales affichées. Par exemple, %10.4f affichera un nombre d'au moins 10 caractères de large avec quatre décimales. Quand la précision du modificateur est appliqué au code de format g ou G, il détermine le nombre maximum de chiffres significatifs affichés. Lorsqu'il est appliqué à des nombres entiers, le modificateur de précision spécifie le nombre minimum de chiffres étant affichés. Des zéros de tête sont ajoutés, si nécessaire.
- Lorsque le modificateur de précision est appliqué aux chaînes de caractères, le nombre suivant le point spécifie la longueur maximale du champ. Par exemple, %5.7s affichera une chaîne de caractères comptant au moins cinq caractères et ne dépassera pas sept. Si la chaîne de caractères est plus longue que la largeur de champ maximale, les caractères seront tronqués à la fin.
- Par défaut, toutes les sorties sont justifiées à droite : si la largeur du champ est supérieure aux données affichées, les données seront placées sur le bord droit du champ. Vous pouvez forcer les informations à être justifiées à gauche en plaçant un signe moins directement après le «%». Par exemple, %-10.2f justifiera à gauche un nombre à virgule flottante avec deux décimales dans un champ de 10 caractères. Il existe deux modificateurs de format permettant à printf() d'afficher des entiers courts et longs. Ces modificateurs peuvent être appliqués aux spécificateurs de type d, i, o, u et x. Le modificateur l indique à printf() qu'un long type de données suit. Par exemple, %ld signifie qu'un entier long doit être affiché. Le modificateur h indique à printf() d'afficher un entier court. Par conséquent, %hu indique que les données sont de type entier court non signé. Si vous utilisez un compilateur moderne prenant en charge les fonctionnalités de caractères Unicode ajoutées en l'année 1995, vous pouvez utiliser le modificateur l avec le spécificateur c pour indiquer un caractère Unicode de type wchar_t. Vous pouvez également utiliser le modificateur l avec le format de commande s pour indiquer une chaîne de caractères Unicode.
- Un modificateur L peut préfixer les commandes à virgule flottante de e, f et g et indique qu'un long double suit.
- La commande %n fait que le nombre de caractères ayant été écrits au moment où %n est rencontré est placé dans une variable entière dont le pointeur est spécifié dans la liste des paramètres.
- Le # a une signification spéciale lorsqu'il est utilisé avec certains codes de format printf(). Faire précéder un code g, G, f, e ou E par un # garantit que le point décimal sera présent, même s'il n'y a pas de chiffres décimaux. Si vous faites précéder le code de format x ou X d'un #, le nombre hexadécimal sera affiché avec un préfixe 0x. Si vous faites précéder le format o d'un #, la valeur octale sera affichée avec un préfixe 0. Le # ne peut être appliqué à aucun autre spécificateur de format.
- Les spécificateurs de largeur de champ et de précision minimum peuvent être fournis par des paramètres à printf() plutôt que par des constantes. Pour ce faire, utilisez un * comme espace réservé. Lorsque la chaîne de caractères de format est analysée, la fonction printf() associera chaque * à un paramètre dans l'ordre dans lequel ils se produisent.
Exemple
Voici divers exemple d'affichages de format :
Essayer maintenant !
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
-
- int main()
- {
- printf("Boujour!\n");
- printf("Entier %%i = %i\n",15);
- printf("Hexadecimal %%x = %x\n",16);
- printf("Octal %%o = %o\n",16);
- printf("Chaine de caracteres %%s = %s\n","message");
- printf("Reel %%f = %f\n",123.45);
- printf("Reel %%f = %.2f\n",123.45);
- 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 - fread
Langage de programmation - C++ - Référence de procédures et fonctions - fscanf
Langage de programmation - C++ - Référence de procédures et fonctions - fwrite
Langage de programmation - C++ - Référence de procédures et fonctions - scanf
Langage de programmation - C - Référence de procédures et fonctions - printf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 195.