ANNEXE : Fonctions d'entrée/sortie en langage C

Entrée (lecture) Sortie (écriture)
stdin(0) FILE* stdout(0)
scanf("%s",char* s)
 
int fscanf(FILE* f, "%s", char * s)
  retourne 1 si OK, EOF en fin de fichier.
int fprintf(FILE* f, "%s", char* s)
  retourne le nombre de caractères écrits ou EOF.
printf("%s",char* s)
 
int(1) getchar() int getc (FILE* f) int putc(int c, FILE* f) int putchar(int c)
  int fgetc(FILE* f)
sauf raison particulière, utiliser getc.
int fputc(int c, FILE* f)
sauf raison particulière, utiliser putc.
 
(2) char* fgets(char* s, int t, FILE* f)
  retourne NULL si problème de lecture
  t : taille en octet du buffer
int fputs(char* s, FILE* f)
  copie s vers f, sans inclure le '\0' terminal de s.
 
int puts(char* s)
  ajoute un retour à la ligne final (contrairement à fputs).
  int fread(char* destination, int t, int n, FILE* f)
  copie n objets de taille t octets.
int fwrite(char* source, int t, int n, FILE* f)
  copie n objets de taille t octets.
 

Légende :
(0) stdin (saisie au clavier) et stdout (affichage à l'écran) sont considérés, avec stderr (affichage des erreurs), comme des fichiers, et peuvent en utiliser les fonctions. Par exemple getchar() correspond à getc(stdin).
(1) int : caractère (unsigned char) transtypé en entier. Ce type inclut la valeur négative EOF signalant une fin de fichier ou une erreur E/S.
(2) char* gets(char* s) n'existe plus en C11, il était obsolète depuis POSIX 2008 (risque de buffer-overflow).
(3) "%s" ou autre chaine de caractère donnant le format de l'E/S.

Autres fonctions :
ungetc, putwchar, getwchar, ungetwc, fputwc, fgetwc, fputws, fgetws, fseek, getline, ...
Attention à ne pas combiner des fonctions de "haut niveau" avec des fonctions de bas niveau.
© 2015, 2018 – A. Sigayret