b.shishedjiev - entrée/sortie1 entrée-sortie simple faire le programme d’écouter et parler

12
B.Shishedjiev - Entrée/ sortie 1 Entrée-sortie simple Faire le programme d’écouter et parler

Upload: idelle-gon

Post on 04-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 1

Entrée-sortie simple

Faire le programme d’écouter et parler

Page 2: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 2

L’objectif• Communication

▪ stdin – le clavier▪ stdout – l’écran▪ stderr – les erreurs

Programme

entr

ée

vale

urs

sort

ie

vale

urs

#include <stdio.h>

• Pour utiliser les fonction d’entrée-sortie on doit inclure la bibliothèque stdio

Texte

Texte

Texte

Page 3: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 3

La sortie formatée• Fonction printf – rend le nombre d’octets affichés int printf( format , expr1 , expr2 , ... exprn )

• Le string format – comporte les caractères qui doivent être affichés et des spécifications

printf( “….sp1 … sp2 … sp3 … “  , expr1 , expr2 , expr3 )

▪ Spécification – comment la donnée doit être présentée%[+-0 espace #][l][.p][h|l|L]d|i|u|o|x|X|f|e|E|g|G|p|c|s%%

Page 4: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 4

Affichage formaté• Exemples

#include <stdio.h>void main (void ) { int i = 23674; int j = -23674; long k = (1L << 31); printf ("impression de i : \n"); printf ("|%d| \t |%u| \t |%o| \t |%x|" ,i,i,i,i) ; printf ("\n|%10d|\t|%10.6d|\t|%-10.3o|\t|%.5x|",i,i,i,i); printf ("\nimpression de j : \n"); printf("%d \t %u \t %o \t %x",j,j,j,j); printf ("\nimpression de k: \n") ; printf ("%ld \t %lu \t %lo \t %lx", k, k, k, k) ; printf ("\n");}

impression de i :|23674| |23674| |56172| |5c7a|| 23674| | 023674| |56172 | |05c7a|

impression de j :-23674 41862 121606 a386impression de k:-2147483648 2147483648 20000000000 80000000

Page 5: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 5

Affichage formaté• Exemples

#include <stdio.h>void main (void ) { double x = 1e-8 + 1000; char c = 'A' ; char *chaine = "chaine de caracteres" ; printf ("\nimpression de x: \n") ; printf ("%f \t %e \t %g",x, x ,x ) ; printf ("\n%.2f \t %.2e",x,x); printf ("\n%.20f \t %.20e" ,x,x) ; printf ("\nimpression de c : \n") ; printf ("%c \t %d",c, c ) ; printf ("\nimpression de chaine : \n"); printf ("%s \t %.10s" , chaine, chaine) ; printf ("\n|%20.10s| \t |%-20.10s|" , chaine, chaine) ; printf ("\n");}impression de x:|1000.000000| |1.000000e+03| |1000||1000.00| |1.00e+03|| +1000.00| |+1.00e+03 ||1000.00000001000001000000| |1.00000000001000001000e+03|

impression de c :A 65impression de chaine :|chaine de caracteres| |chaine de || chaine de | |chaine de |

Page 6: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 6

Affichage de caractères• La fonction putchar int putchar( caractère )

▪ Exemples

putchar( ‘A’ ); putchar(‘\n’); putchar(‘\’’);

• La fonction puts – ajoute le ‘\n’int puts( string )

▪ Exemples puts( “Zorro est arrivé”);

En cas d’erreur tous les fonctions rendent la valeur EOF

Page 7: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 7

La saisie

'B' 'o' 'n' 'j' 'o' 'u' 'r' '\n' 'm' 'a' 'm' 'a'

EOF

Page 8: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 8

La saisie• La saisie de caractères – fonction getchar.int getchar(void)

▪ Exempleint C; C = getchar();

Page 9: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 9

La saisie formatée• La fonction scanf – rend le nombre de paramètres

affectés

int scanf( format , adresse1 , adresse2 , ... adressen )

scanf( “….sp1 … sp2 … sp3 … “  , adr1 , adr2 , adr3 )

%

[*]

[l]

[.p]

• Le string format – comporte les caractères qui doivent être lus et des spécifications. Chaque espace dénote un ou plusieurs caractères d’échapement – espace, tabulation ou novelle ligne

[h|l|L]

d|i|u|o|x|f|e|g|c|s

%%

▪ Spécification – comment la donnée doit être présentée

Page 10: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 10

La saisie formatée• Exemples

Déclaration

Instruction Données valides Données invalides

scanf("%i %i %i", &JOUR,&MOIS,&ANNEE);

12 4 1980

12 004 1980

12/4/1980

scanf("%i/%i/%i", &JOUR,&MOIS &ANNEE);

12/4/1980

12/04/01980

12 4 1980

12 /4 /1980

int JOUR,MOIS, ANNEE;

RECU = scanf("%i %i %i", &JOUR, &MOIS, &ANNEE);

Données RECU JOUR MOIS ANNEE

12 4 1980 3 12 4 1980

12/4/1980 1 12 - -

12.4 1980 1 12 - -

12 4 19.80 3 12 4 19

Page 11: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 11

La saisie formatée• Exemples

Déclaration

Instruction Données valides Données invalides

scanf("(%d,%d)",&x, &y); (22,33)

( 22, 33)

( 22 , 33 )

scanf(" ( %d , %d )",&x, &y); (22,33)

( 22, 33)

( 22 , 33 )

( 22 ; 33 )

int x,y;

Page 12: B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler

B.Shishedjiev - Entrée/sortie 12

La saisie formatée• Exemples

int x,y;

Instruction données z x y

z=scanf(“%2d%3d”,&x,&y);

34565 2 34 565

2456 2 24 56

234567 2 23 456

z=scanf(“%2d%d”, &x,&y);

234567 2 23 4567

z=scanf(“%2d %d”, &x,&y);

234567 2 23 4567