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 \ suivis 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 qu'utile 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”);