- Aide pour un exercice en C
- Exercice word avec corrigé - Forum Word
- Triangle des textures exercice corrigé - Forum Loisirs / Divertissements
- Exercice informatique cm2 pdf ✓ - Forum Études / Formation High-Tech
- Exercice d'expression écrite cm2 gratuit - Télécharger - Éducatifs
- Pert exercice corrigé pdf ✓ - Forum Windows
2 réponses
Pourrais-tu décrire ton problème. On ne va pas analyser tout ton code.
Je peux juste dire que flush sur stdin peut conduire à un comportement indéterminé.
Utilises fgets au lieu de gets pour éviter des problèmes de débordement.
Veux-tu tout écrire sur une ligne? Tu ne mets pas d'espace entre les champs avec fprintf.
Et fputs va générer une fin de ligne. C'est ce que tu veux?
Bonsoir, il y a plusieurs erreurs dans ton code. Tout d'abord, tu utilises la fonction gets qui est dépréciée et doit être évitée. Tu devrais plutôt utiliser fgets ou scanf pour lire des chaînes de caractères.
Ensuite, tu n'ouvres pas le fichier en mode écriture avant d'essayer de l'écrire dans la fonction ajouter. Pour ouvrir un fichier en mode écriture, tu dois utiliser la fonction fopen de cette manière:
FILE *F1 = fopen("nom_du_fichier.txt", "w");
Tu devrais également vérifier si la fonction fopen a réussi à ouvrir le fichier avant d'essayer de l'écrire. Si elle renvoie NULL, cela signifie que l'ouverture du fichier a échoué et tu devrais afficher une erreur ou quitter le programme.
Enfin, dans la fonction modifiernom, tu dois fermer le fichier après avoir fini de lire et écrire dedans, en utilisant la fonction fclose.
Je te suggère également de structurer ton code de manière à le rendre plus lisible et plus facile à comprendre, en utilisant par exemple des commentaires pour expliquer ce que font chaque fonction et chaque boucle.
Je te suggère également de mettre en place une gestion des erreurs pour ton code, en vérifiant par exemple les valeurs de retour des fonctions que tu utilises et en affichant un message d'erreur approprié en cas d'échec.