Avant de discuter les détails du traitement des fichiers, nous vous présentons un petit exemple comparatif qui réunit les opérations les plus importantes sur les fichiers.
Problème
On se propose de créer un fichier qui est formé d'enregistrements contenant comme information le nom d'une personne. Chaque enregistrement est donc constitué d'une seule rubrique, à savoir, le nom de la personne.

Après avoir écrit et fermé le fichier, le programme va rouvrir le même fichier en lecture et afficher son contenu, sans utiliser le nombre d'enregistrements introduit dans la première partie.
Solution en langage algorithmique
programme PERSONNEL
chaîne NOM_FICHIER, NOM_PERS
entier C,_NB_ENREG
(* Première partie :
Créer et remplir le fichier *)
écrire "Entrez le nom du fichier à créer : "
lire NOM_FICHIER
ouvrir NOM_FICHIER en écriture
écrire "Nombre d'enregistrements à créer : "
lire NB_ENREG
en C ranger 0
tant que (C<NB_ENREG) faire
| écrire "Entrez le nom de la personne : "
| lire NOM_PERS
| écrire NOM_FICHIER:NOM_PERS
| en C ranger C+1
ftant (* C=NB_ENREG *)
fermer NOM_FICHIER
(* Deuxième partie :
Lire et afficher le contenu du fichier *)
ouvrir NOM_FICHIER en lecture
en C ranger 0
tant que non(finfichier(NOM_FICHIER)) faire
| lire NOM_FICHIER:NOM_PERS
| écrire "NOM : ",NOM_PERS
| en C ranger C+1
ftant
fermer NOM_FICHIER
fprogramme (* fin PERSONNEL *)
Solution en langage C
#include <stdio.h>
main()
{
FILE *P_FICHIER; /* pointeur sur FILE */
char NOM_FICHIER[30], NOM_PERS[30];
int C,NB_ENREG;
/* Première partie :
Créer et remplir le fichier */
printf("Entrez le nom du fichier à créer : ");
scanf("%s", NOM_FICHIER);
P_FICHIER = fopen(NOM_FICHIER, "w"); /* write */
printf("Nombre d'enregistrements à créer : ");
scanf("%d", &NB_ENREG);
C = 0;
while (C<NB_ENREG)
{
printf("Entrez le nom de la personne : ");
scanf("%s", NOM_PERS);
fprintf(P_FICHIER, "%s\n", NOM_PERS);
C++;
}
fclose(P_FICHIER);
/* Deuxième partie :
Lire et afficher le contenu du fichier */
P_FICHIER = fopen(NOM_FICHIER, "r"); /* read */
C = 0;
while (!feof(P_FICHIER))
{
fscanf(P_FICHIER, "%s\n", NOM_PERS);
printf("NOM : %s\n", NOM_PERS);
C++;
}
fclose(P_FICHIER);
return 0;
}
>> Voir aussi: Chapitre 11.4.3. Exemples: Ouvrir et fermer des fichiers en pratique