Bien le bonjour ,
Je suis étudiant dans une école d'ingénieur en informatique en 1ère année . Je suis en train de réaliser un petit logiciel sur console qui permettrait à des professeurs (avec leurs comptes) d'école d'ajouter ou de supprimer les absences de leurs élèves.
En plus des professeurs , il existe aussi des comptes administrateurs pouvant ajouter/supprimer des classes ou des utilisateurs , et aussi des comptes élèves (ceux-ci pourront lister leurs absences selon la date/matière)
Je vous expose donc mon problème . Mon logiciel utilise le système de fichiers. Les absences sont notées dans le fichier de l'élève par exemple .. Même chose pour les matières ou les comptes d'utilisateurs qui ont leurs propres fichiers à eux.
J'ai un problème au niveau de la fonction remove() , que j'ai utilisée à maintes fois dans le code, notamment dans les fonctions de suppression ( supprimerUtilisateur / supprimerClasse / supprimerMatière etc. ) Pour supprimer une matière (dans le fichier matieres.txt), je procède comme suit :
Je crée un fichier temp.txt qui contiendra tout le contenu de matieres.txt , sauf la matière que je veux supprimer.
Je supprime ensuite le fichier matieres.txt grâce à la fonction remove(), puis renomme le fichier temp.txt en matieres.txt grâce à rename(). Ni vu ni connu.
Cependant , la fonction remove ne marche absolument pas. Je me retrouve donc avec un fichier matieres.txt intact , et un fichier temp.txt qui contient toutes les matières sauf celle qui est supprimée .
J'ai essayé à maintes fois de trouver l'origine du problème . Peut être est-ce à cause de la non-fermeture d'un fichier ... En tout cas , ça fait 2 semaines que j'essaye de régler ce problème , mais rien n'y fait ... C'est pourquoi je vous demande votre aide. Je joins à ce message le fichier rar du projet , qui contient le main.c ainsi que les fichiers d'élèves/matières/comptes
Merci d'avance
PS : pour le compte admin , login : admin / pass : admin et le compte prof , login : p / pass : p
Partager