| 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. |
||
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).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.char* gets(char* s) n'existe plus en C11, il était obsolète depuis POSIX 2008 (risque de buffer-overflow).