6.1. Affichage à l'aide de la fonction printf

Icône de l'outil pédagogique Affichage à l'aide de la fonction printf

La fonction printf permet d'afficher sur la fenêtre de l’écran un texte qui suit un format défini par le programmeur. Sa syntaxe générale est :

printf("format", arg_1, arg_2, ..., arg_n) ;

où format représente une chaîne de caractères (placée entre guillements "") qui contient :

– du texte à imprimer tel quel ;

– des spécifications de format (autant que de paramètres arg_i) qui indiquent comment afficher les variables arg_1, ..., arg_n fournies en paramètre. Ce sont des codes formats.

Chaque code format commence par le symbole % suivi par une (ou deux) lettre(s) indiquant le format d'affichage du paramètre arg_i correspondant (celui qui a le même rang dans la liste des arguments). La valeur de arg_i remplacera son code format à l'affichage.

La lettre placée après le symbole % dans le code format indique le type du paramètre associé au code format (voir tableau page suivante). Dans l'exemple précédent, %lf (et ses variantes comme %8.2lf) est le code format associé à un double.

Les paramètres de printf peuvent être des variables, des constantes, des expressions à calculer préalablement à l'affichage..

Exemple 38 : printf et ses codes formats

N’utilisez pas un code format choisi au hasard :
– le format utilisé doit correspondre au type de la variable utilisée comme argument ;
– le nombre de codes formats doit être égal au nombre d’arguments. Si ce n'est pas le cas, C choisit d'obéir au code format.

Des options peuvent s'insérer entre le symbole % et la lettre indiquant le type, afin de spécifier de façon plus précise la présentation de l'affichage. Ces options sont :

un nombre qui indique le nombre de positions sur lequel doit s'écrire la valeur de la variable, cadrée à droite (si ce nombre n'est pas suffisant, le C n'en tient pas compte) :

deux nombres séparés par un point (très utile pour les réels) ; le premier indique le nombre total de positions occupées (il peut être absent), le deuxième précise le nombre de chiffres à écrire après la virgule :

– le signe ‐ devant le nombre précédent pour demander de cadrer à gauche :

Dans le texte à imprimer peuvent être insérés des caractères spéciaux composés du symbole \ suivi d'une lettre ; par exemple, \n dans l'exemple précédent représente un changement de ligne, \t permet l'introduction d'une tabulation horizontale (voir tableau).

Bien que ça ne soit utile que pour certains caractères spéciaux, un caractère à imprimer peut également être désigné par son code ASCII hexadécimal ; par exemple \x041 permet d’afficher le caractère 'A'.

La table des codes ASCII est fournie en annexe.

La fonction printf renvoie un entier qui constitue un compte‐rendu d'exécution : cette valeur retournée correspond au nombre de caractères affichés. Cette information n’est utile que pour régler des problèmes de mise en page.

Pour continuer à la ligne suivante un texte trop long dans une instruction printf, il faut
utiliser le caractère \ :

printf ("Pour continuer une chaîne de car sur la ligne suivante, \ il faut utiliser l’antislash ou scinder en 2 printf”);