Fiche de Révision : Gestion des Fichiers en C
1. Introduction aux fichiers
En C, les fichiers permettent de stocker et de manipuler des données de manière persistante. On utilise la bibliothèque <stdio.h> pour les manipuler.
2. Types de fichiers
1. Fichiers Texte
- Stockent des caractères lisibles (
.txt, .csv, etc.). - Utilisent des fonctions comme 
fprintf(), fscanf(). - Exemple : Fichier contenant du texte brut.
 
2. Fichiers Binaires
- Stockent des données sous forme binaire (
.dat, .bin, etc.). - Plus compacts et plus rapides.
 - Utilisent 
fwrite(), fread(). 
3. Ouverture et Fermeture d’un Fichier
Avant d’utiliser un fichier, il faut l’ouvrir avec fopen() et le fermer avec fclose().
1
2
3
4
5
6
7
8
  | FILE *fichier;
fichier = fopen("monfichier.txt", "r"); // Ouvre en lecture
if (fichier == NULL) {
    printf("Erreur d'ouverture du fichier !
");
    return 1;
}
fclose(fichier);
 | 
Modes d’ouverture courants
| Mode | Type | Description | 
|---|
| r | Texte | Lecture (erreur si le fichier n’existe pas) | 
| w | Texte | Écriture (création ou écrasement du fichier) | 
| a | Texte | Ajout à la fin du fichier (création si inexistant) | 
| r+ | Texte | Lecture/écriture (erreur si inexistant) | 
| w+ | Texte | Lecture/écriture (efface le fichier existant) | 
| a+ | Texte | Lecture/ajout (création si inexistant, ajoute à la fin) | 
| rb | Binaire | Lecture en mode binaire | 
| wb | Binaire | Écriture en mode binaire | 
| ab | Binaire | Ajout en mode binaire | 
| rb+ | Binaire | Lecture/écriture binaire (erreur si inexistant) | 
| wb+ | Binaire | Lecture/écriture binaire (efface le fichier existant) | 
| ab+ | Binaire | Lecture/ajout binaire (ajoute à la fin) | 
4. Lecture et Écriture
1. Fichiers Texte
Écriture
1
2
3
4
  | FILE *f = fopen("test.txt", "w");
fprintf(f, "Bonjour monde !
");
fclose(f);
 | 
Lecture avec fgets
1
2
3
4
5
  | char buffer[100];
FILE *f = fopen("test.txt", "r");
fgets(buffer, 100, f); // lit une ligne au maximum de 99 caractères
printf("%s", buffer);
fclose(f);
 | 
Lecture caractère par caractère avec fgetc
1
2
3
4
5
6
  | FILE *f = fopen("test.txt", "r");
int c;
while ((c = fgetc(f)) != EOF) {
    putchar(c);
}
fclose(f);
 | 
2. Fichiers Binaires
Écriture
1
2
3
4
  | int nombre = 42;
FILE *f = fopen("data.bin", "wb");
fwrite(&nombre, sizeof(int), 1, f);
fclose(f);
 | 
Lecture
1
2
3
4
5
  | int nombre_lu;
FILE *f = fopen("data.bin", "rb");
fread(&nombre_lu, sizeof(int), 1, f);
printf("%d", nombre_lu);
fclose(f);
 | 
5. Manipulation Avancée
1. Déplacement dans un fichier
fseek(FILE* flux, long deplacement, int modeDeplacement) : Déplace le curseur.SEEK_SET (0) : Depuis le début du fichier.SEEK_CUR (1) : Depuis la position actuelle.SEEK_END (2) : Depuis la fin du fichier.
ftell(f) : Renvoie la position actuelle.rewind(f) : Remet le curseur au début.
1
2
3
  | fseek(f, 10, SEEK_SET); // Se déplace à la 10e position
long position = ftell(f);
rewind(f);
  | 
2. Fermeture
fclose(f) libère la mémoire.
6. Résumé
- Ouvrir un fichier avec 
fopen() et vérifier si NULL. - Lire et écrire avec 
fprintf(), fscanf() (texte) ou fwrite(), fread() (binaire). - Utiliser 
fgets() pour lire des lignes et fgetc() pour lire caractère par caractère. - Fermer le fichier avec 
fclose(). - Déplacer le curseur avec 
fseek(), ftell(), rewind(). 
Bien choisir le mode (r, w, a, etc.) pour éviter les pertes de données !
 Le contenu de cet article est la propriété exclusive de son auteur.