Vous êtes sur la page 1sur 4

14/11/2011

Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

Entres & sorties

Dr. Thouraya Daouas

Langage C Niveau I

43

4. Entres & sorties

La fonction printf
Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

Sa syntaxe:
printf("premier argument %format_arg2 % format_arg3", arg2, arg3);

Le premier argument de printf contient une chane de caractres qui est affiche lcran lexception des mots commenant par le caractre % .
int i = 6; float f = 2.3456; printf ("Rang : %d , valeur %10.5f", i, f);

Affiche lcran:
Rang : 6, valeur 2.34560

Dr. Thouraya Daouas

Langage C Niveau I

44

14/11/2011

4. Entres & sorties

La fonction printf
Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

Le nombre d'arguments de printf est variable et dtermin par le premier argument (une chane de caractres) Le premier argument compose ce que lon nomme le "format" ; dans notre exemple "Rang : %d , valeur %10.5f %x est appel le code format, il reprsente un code de conversion ; dans notre exemple %d et %10,5F
%c %f %s %Lf %3d

Printfrenvoie le nombre de caractres crits, ngatif si erreur.


Dr. Thouraya Daouas Langage C Niveau I 45

4. Entres & sorties

Les formats de printf


Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

c : char pour un caractre d : int pour un entier u : unsigned int ld: long int lu : unsigned long int f : double ou float crit notation en dcimale ex : 999.123456 ou 999.123400 (compte tenu des conversions systmatiques float--> double). e : double ou float crit en notation exponentielle, mantisse 1 10, 6 chiffres aprs la dcimale s : chane de caractres, fournir ladresse (pointeur) de la chane.

Dr. Thouraya Daouas

Langage C Niveau I

46

14/11/2011

4. Entres & sorties

Exemples de formats printf


Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

printf("%3d",i); /* entier avec 3 caractres minimum */ i =2; ^^2 i = 4567; 4567 i = -4567; -4567 printf("%f",f); /* dcimale avec 3 caractres minimum */ f =99.12345;99.12345 printf("10%f",f); /* dcimale avec 10 caractres minimum */ f =99.;^99.000000 f =-99.;-99.000000 printf("20.9%f",f); /* dcimale avec 20 caractres min */ f =99.;^^^^^^^^99.000000000 f =99.;^^^^^^^-99.000000000

Dr. Thouraya Daouas

Langage C Niveau I

47

4. Entres & sorties

printf
Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

printf(format, liste dexpression); format


constante chane de caractres entre "". une chane de caractres (pointeur sur une une chane de caractres).

liste dexpression
suite dexpressions spares par des virgules correspondant au format.

Printfrenvoie le nbre de caractres rellement affichs ou -1 en cas derreur.

Dr. Thouraya Daouas

Langage C Niveau I

48

14/11/2011

4. Entres & sorties

scanf
Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

Sa syntaxe:
scanf(format, liste d'adresses); scanf("%arg2%arg3", &arg2, &arg3);

Scanf permet de saisir des donnes entres au clavier. Le format dtermine le type des donnes saisies. Il est ncessaire de fournir l'adresse des variables qui contiendront les donnes. Code format:
c d u Hd lu
Dr. Thouraya Daouas

char int unsigned int short int unsigned long

f ou e lf ou le s Ld

dcimale ou exponentielle double chane long int

Langage C Niveau I

49

4. Entres & sorties

Tampon de scanf
Langage C Langage C Langage C Langage C Langage C Langage C Langage C Langage C

Tampon:
Les informations entres au clavier sont places dans un tampon. Scanf explore ce tampon caractre par caractre au fur et mesure des besoins. L'espace et la fin de ligne '\n' sont considrs comme des sparateurs (il peut y en avoir d'autre).

Fonctionnement de scanf
Pour les nombres : scanf avance jusqu'au premier caractre diffrent d'un sparateur, puis scanf prend en compte tous les caractres jusqu' la rencontre d'un sparateur ou en fonction d'un gabarit ou d'un caractre invalide. pour les nombres : pas de conversion implicite. pour les caractres %c : scanf renvoie le prochain caractre dans le buffer sparateur ou non sparateur.

Dr. Thouraya Daouas

Langage C Niveau I

50