Nous allons vous expliquer les opérations d’écriture dans un fichier texte à l’aide d’un exemple à l’appui.
Exemple : Supposons la gestion des étudiants en C. Les données seront stockées dans un fichier nommé « etudiant.txt ». Un étudiant est caractérisé par :
Etudiant : matricule, nom, prénom, sexe, téléphone, email
Déclaration de la structure étudiant :
Ajouter un étudiant dans le fichier texte
Ici pour faire l’ajout d’un étudiant nous devons nous rassurer qu’il n’y a aucun n’étudiant qui possède ce matricule dans le fichier étudiant. Ainsi donc avant de faire l’ajout, nous ferons d’abord la recherche.
Nous avons créé une fonction « recherche » qui prend en paramètre le matricule de l’étudiant et renvoie 1 si l’étudiant existe et 0 si non. A l’intérieur de cette fonction on ouvre notre fichier étudiant en mode lecture, ensuite grâce à la boucle « do … while » nous parcourons toutes les lignes du fichier. Dans la boucle nous récupérons chaque ligne grâce à la fonction « fscanf() » que nous stockons dans la structure étudiant. Lors de la lecture nous devons nous rassurer que la structure avec laquelle nous lisons les lignes soit la même avec laquelle nous avons écrit dans le fichier. Une fois la ligne récupérée on vérifie si le matricule de l’étudiant stocké dans le fichier correspond à ce que nous avons passé en paramètre. Si oui on renvoie 1 et on ferme le fichier « fclose(f) » ; sinon on continue la recherche jusqu'à ce que le pointeur atteigne la fin du fichier.
La fonction strcmp() permet de tester l’égalité entre 2 chaines de caractères. Elle renvoie 0 si les 2 chaines sont égales et 1 si non.
fflush(stdin) permet de libérer la mémoire.