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).