08.04.2014 Views

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

Algorithmique et Langage - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Opérations sur les flux<br />

! « Ouverture »<br />

→ création du buffer<br />

→ création du lien avec le dispositif physique (FILE *)<br />

→ FILE* fopen(char *NomFichier*<br />

NomFichier, , char *Mo<strong>de</strong>)<br />

! Opérations d’entrées/sorties<br />

→ Entrées/sorties séquentielles<br />

→ Opérations binaires ou formatées<br />

→ Gestion du flux (positionnement, mise à jour buffer…)<br />

Utilisation <strong>de</strong>s flux<br />

Nécessite l’utilisation <strong>de</strong> <br />

Remarque :<br />

Opérations sur les flux peuvent échouer (disque plein, fichier<br />

introuvable…)<br />

→ Nécessiter <strong>de</strong> vérifier validité opérations<br />

→ Tester les co<strong>de</strong>s d’erreurs (EOF ou NULL).<br />

! « Ferm<strong>et</strong>ure »<br />

→ mise à jour <strong>de</strong>s données contenues dans le buffer<br />

→ <strong>de</strong>struction du buffer<br />

→ int fclose(FILE *f)<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

81<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

82<br />

Flux en sortie<br />

Flux en entrée<br />

! Accès en écriture <strong>de</strong>s fichiers.<br />

! Par défaut l’écran (stdout(<br />

tdout) → ne nécessite pas d’ouverture.<br />

! Fonctions <strong>de</strong> gestion du flux :<br />

! printf, fprintf, sprintf,…<br />

int printf(const<br />

char *format, …)<br />

int fprintf(FILE *f, const char *format, …)<br />

int sprintf(char *str*<br />

str, const char *format, …)<br />

! putchar, putc, fputc<br />

int putchar(int<br />

x)<br />

int putc(int<br />

x, FILE *f)<br />

int fputc(int<br />

x, FILE *f)<br />

! puts, fputs<br />

char *puts(const char *str)<br />

char *fputs(const char *str, FILE *f)<br />

! fwrite<br />

int fwrite(const<br />

void *buffer, size_t size, size_t nb, , FILE *f)<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

83<br />

! Accès en lecture <strong>de</strong>s fichiers.<br />

! Par défaut le clavier (stdin(<br />

stdin) → ne nécessite pas d’ouverture.<br />

! Fonctions <strong>de</strong> gestion du flux :<br />

! scanf, fscanf, sscanf,…<br />

int scanf(const<br />

const char *format,…)<br />

int fscanf(FILE *f, const char *format,…)<br />

int sscanf(char *s, const char *format,…)<br />

! g<strong>et</strong>char, g<strong>et</strong>c, fg<strong>et</strong>c<br />

int g<strong>et</strong>char(void<br />

void)<br />

int g<strong>et</strong>c(FILE *f)<br />

int fg<strong>et</strong>c(FILE *f)<br />

! g<strong>et</strong>s, fg<strong>et</strong>s<br />

char *g<strong>et</strong>s(void)<br />

char *fg<strong>et</strong>s(char *<strong>de</strong>st, size_t nb_max, FILE *f)<br />

! fread<br />

int fread(void<br />

*buffer, size_t size, size_t nb, , FILE *f)<br />

M. <strong>Deloizy</strong> <strong>Langage</strong> C<br />

84<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!