Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 33
Syntaxe: printf ( format, liste_expressions_citées ) format: chaine de caractère, spécifiant: des caractères à afficher tels quels, des codes de format repérés par % précisant le type de l information à afficher. liste_expressions_citées: suite d expressions séparées par des virgules (de types, respectivement, en accord avec les types cités dans la partie format) 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 34
Exemple: printf ( l entier saisi est : %d et le réel sasi est : %f, n,r); Attention à l ordre d apparition des expressions printf ( l entier saisi est : %d et le réel sasi est : %f, r,n); Affiche des 0 au lieu des valeurs correctes 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 35
Codes de format: c : char d: int u: unsigned int ld: long lu: unsigned long f : double ou float (écrit en notation décimale avec 6 chiffres après le point (par exemple : 1.234500 ou 123.456789) e : double ou float (écrit en notation exponentielle) 1 <= mantisse <= 9 forme x.xxxxxxe+yyyou x.xxxxxxe-yyypour les nombres positifs -x.xxxxxxe+yyy ou -x.xxxxxxe-yyy pour les nombres négatifs s : chaîne de caractères (notion qui sera étudiée ultérieurement) 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 36
Gabarit d affichage: Un nombre placé après % dans le code de format précise un gabarit d affichage, càd un nombre minimal de caractères à utiliser. Ex: printf( %5d,n); Précision: spécifier un nombre de chiffres après le point décimal. Ce nombre doit apparaître, précédé d un point, avant le code de format Ex: printf( %10.2f,x); 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 37
Remarques: Utiliser signe après % pour aligner le texte a gauche Ex: printf( %-4d, n); Utiliser symbole * pour mentionner que le parametre est fourni dans la liste des arguments Ex: printf("%7.*f",n,x); 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 38
Cas particulier: comportement aléatoire Type de paramètres différent Nombre de paramètre différent du nombre cité dans la partie format 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 39
Livre: Claude Delannoy: programmer-en-langage-c-cdelannoy Post-incrementation & pre-incrementation Operateur bit à bit et de décalage(i << nbdg, i >> nbdd) Ecriture octale et hexadecimale 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 40
Fonction scanf Syntaxe: scanf (format, liste_d_adresses); format: chaine de caractère, spécifiant: des codes de format repérés par % précisant le type de l information à saisir. liste_d_adresses: suite d adresses de lvalue séparées par des virgules (de types, respectivement, en accord avec les types cités dans la partie format) 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 41
Fonction scanf Codes de format: c : char d: int u: unsigned int hd: short int hu: unsigned short ld: long int lu: unsigned long f ou e: float (écrit en décimale ou exponentionnel) lf ou le: double s : chaîne de caractères 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 42
Fonction scanf l information frappée au clavier est rangée temporairement dans un emplacement mémoire nommé «tampon» Utilisation d un pointeur Quelques exemples: 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk 43