Tchambia Rameaux

Comment supprimer une ligne dans un fichier en C

Nous allons voir ceci avec l'exemple sur la gestion des étudiants.

Supprimer un étudiant dans un fichier à partir de son matricule

Principe : Ici nous allons ouvrir notre fichier étudiant en mode lecture, et on crée un fichier tampon en mode ajout. Ensuite on parcourt notre fichier étudiant et on copie les lignes qui ne correspondent pas à l’élément recherché et on le stocke dans notre fichier tampon. Donc à la fin dans notre fichier etudiant.txt on aura uniquement l’étudiant à supprimer et dans le fichier tampon le reste des étudiants. Après cela on supprime le fichier etudiant.txt et on renomme notre fichier tampon avec le nom du fichier supprimé.



Explication :

On demande à l’utilisateur d’entrer le matricule de l’étudiant qu’il souhaite supprimer, et on vérifie tout d’abord s’il existe un étudiant avec ce matricule (avec la fonction recherche créée précédemment). Puis on demande la confirmation de suppression à l’utilisateur et on effectue la suppression. Pour ce faire on ouvre notre fichier « etudiant.txt » en mode lecture et on crée un fichier tampon « tmp_etudiant.txt ». Ensuite on parcourt le fichier « etudiant.txt » ; pour chaque ligne on vérifie si elle ne correspond pas à l’étudiant recherché, si oui on stocke cette ligne dans le fichier tampon et ainsi de suite jusqu’à arriver à la fin du fichier. Ensuite, on supprime (fonction remove()) le fichier « etudiant.txt » et on renomme (rename()) « tmp_etudiant.txt » en « etudiant.txt ».