Fonction d'écriture : printf ()
printf (param_1, param_2, param_3,..., param_n)
où param_1 à param_n est une suite d'au moins un paramètre transmis à la fonction, séparés par des ','.
param_1 : est obligatoire c'est une chaîne de caractères qui comporte des caractères à afficher tels quels et éventuellement des consignes de formatage pour les autres paramètres (s'il y en a). Il doit y avoir autant de consignes que de paramètres restant à afficher.
Le résultat est tel que l'on affiche les arguments param_2, param_3,..., param_n aux formats spécifiés dans param_1.
Une consigne de formatage commence toujours par le caractère '%', suivi d'autres caractères juxtaposés qui définissent le format d'affichage. C'est donc une séquence d'échappement.
Les paramètres param_2, param_3,..., param_n sont des expressions qui retournent une valeur. Cela peut être simplement des identificateurs de constantes ou de variables, ou en encore des littéraux.
printf("\nbonjour chez vous");
affichera : bonjour chez vous
Le '\n' n'est pas un formatage, c'est juste le caractère interligne. On saute donc une ligne avant d'afficher la suite de caractères "bonjour chez vous".
Dans ce cas param_1 est le seul paramètre. Il s'agit d'une simple chaîne de caractères sans consigne de formatage.
Les consignes décrivent comment écrire les paramètres param_2, param_3,..., param_n à l'écran.
#include <stdio.h>
int main()
{
char car;
car = getchar();
// on suppose que l'utilisateur tape le caractère A puis <return>
printf("le caractere est %c et son code est %d\n",car,car);
}
A l'écran nous aurons :
< NL>
Le caractère est A et son code est 65 < NL >
Vous avez remarqué que la valeur de la variable car était affichée avec la consigne %c puis la valeur de cette variable était affichée avec la consigne %d. On affiche car sous sa forme caractère puis sous la forme de la valeur de son code ASCII exprimé en décimal.
Les formats que nous utiliserons couramment seront %c (pour char), %d (pour int), %f (pour float), %s (pour char *, c.-à-d.chaîne de caractères) et %p (pour la valeur d'un pointeur, c-à-d une adresse, c.-à-d. un <type> *).
Nous donnons, à titre d'information, la façon de construire la séquence de formatage, mais nous ne détaillerons pas. A l'utilisateur de faire des essais ou de se reporter à un ouvrage de référence. Après le signe % du début de la séquence d'échappement, on trouve :
-
Eventuellement un ou plusieurs indicateurs modifiant la signification de la conversion (-, +, #).
-
Eventuellement un nombre pour indiquer la taille minimale du champ d'affichage concerné.
-
Eventuellement un '.' suivi d'un nombre pour la précision (pour les nombres à virgules).
-
Eventuellement le caractère 'l' si le nombre entier concerné (formats ld, lo, lu, lx ou lX) est un entier long ou lf si c'est un double ;
Enfin, et obligatoirement le caractère indiquant le format de conversion parmi :
#include <stdio.h>
int main()
{
float pourcent = 3.85;
printf("\nle pourcentage est\n$%+10.3f$\n",pourcent);
}
Affichera :
le pourcentage est
$ +3.850$
Entre les deux caractères $ il y a 10 caractères, le signe + a été ajouté, il y a 3 chiffres après la virgule.
C'est le format demandé pour la valeur de la variable pourcent de type float.