Maîtriser les entrées/sorties en C : Fonctions standards et fichiers
Entrée : fournir des données au programme (fichier, ligne de commande). C offre des fonctions intégrées pour lire l'entrée.
Sortie : afficher des données (écran, imprimante, fichier). C offre des fonctions pour sortir vers l'écran ou sauvegarder en fichiers texte/binaire.
Les fichiers standards
C traite tous les périphériques comme des fichiers. Trois fichiers ouverts automatiquement à l'exécution :
| Fichier standard | Pointeur | Périphérique |
|---|---|---|
| Entrée standard | stdin | Clavier |
| Sortie standard | stdout | Écran |
| Erreur standard | stderr | Écran |
Les pointeurs de fichier servent à accéder aux fichiers pour lecture/écriture.
Fonctions getchar() et putchar()
int getchar(void) : lit le prochain caractère depuis l'écran (stdin), retourne un int. Un seul caractère à la fois. Utilisez une boucle pour lire plusieurs.
int putchar(int c) : écrit le caractère passé sur l'écran (stdout), retourne le caractère. Un seul à la fois. Boucle pour plusieurs.
#include <stdio.h>
int main() {
int c;
printf("Entrez une valeur : ");
c = getchar();
printf("\nVous avez entré : ");
putchar(c);
return 0;
}
Exécution (lit seulement le 1er caractère) :
Entrez une valeur : ceci est un test Vous avez entré : c
Fonctions gets() et puts()
char *gets(char *s) : lit une ligne depuis stdin dans le tampon s jusqu'à newline ou EOF. Obsolète (dangereux : débordement tampon) — utilisez fgets() à la place.
int puts(const char *s) : écrit la chaîne s suivie d'un newline sur stdout.
#include <stdio.h>
int main() {
char str[100];
printf("Entrez une valeur : ");
gets(str); // déconseillé
printf("\nVous avez entré : ");
puts(str);
return 0;
}
Exécution (lit toute la ligne) :
Entrez une valeur : ceci est un test Vous avez entré : ceci est un test
Fonctions scanf() et printf()
int scanf(const char *format, ...) : lit depuis stdin selon le format.
int printf(const char *format, ...) : écrit sur stdout selon le format.
Spécificateurs de format : %s (chaîne), %d (entier), %c (caractère), %f (float), etc.
#include <stdio.h>
int main() {
char str[100];
int i;
printf("Entrez une valeur : ");
scanf("%s %d", str, &i);
printf("\nVous avez entré : %s %d", str, i);
return 0;
}
Exécution :
Entrez une valeur : sept 7 Vous avez entré : sept 7
Attention : scanf() attend le format exact. Pour une chaîne, s'arrête au premier espace — "ceci est test" = 3 chaînes pour scanf.
Langue C
- Comprendre les mots-clés et identificateurs C# : règles, listes et bonnes pratiques
- Fondamentaux C# : Entrées et sorties essentielles
- Classes et objets C# : Fondations pour une POO robuste
- Maîtriser l'entrée/sortie en C++ : Guide pratique
- Maîtriser l'entrée/sortie en C : scanf() et printf() expliqués
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Maîtriser l'entrée/sortie Java : Afficher, lire et formater vos données
- Constantes et littéraux en C : Types, utilisation et bonnes pratiques
- Maîtriser les constantes et littéraux en C# : types, règles et bonnes pratiques