Ajouter un enregistrement a un fichier
kalafaz
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
kalafaz Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
kalafaz Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
lors de l'exécution de mon code j'ai ne peut pas ajouter un nouveau patient ! elle reste toujours dans la patient n 1
voila mon code et merci de me conseillé q'est ce que je peut faire dans ce cas
lors de l'exécution de mon code j'ai ne peut pas ajouter un nouveau patient ! elle reste toujours dans la patient n 1
voila mon code et merci de me conseillé q'est ce que je peut faire dans ce cas
#include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { { //menu printf("\n+-------------------------------------------+\n"); printf("| Gestion d'un cabinet medical |\n"); printf("+-------------------------------------------+\n"); printf("| |\n"); printf("+----*****----------MENU-------*****--------+\n"); printf("| 0 Quitter l'application |\n"); printf("| 1 gestion des patients |\n"); printf("| 2 gestion des rendez-vous |\n"); printf("| 3 gestion des medicament |\n"); printf("|+-----------------------------------------+|\n"); } // *** menu de choix *** int choix; printf ("taper le numero de choix"); scanf("%d",&choix); switch(choix) { case 0: // *** quitter le programme *** return 0; case 1: // *** gestion des patients *** printf("\n+-------------------------------------------+\n"); printf("| 1 gestion des patients |\n"); printf("\n+-------------------------------------------+\n"); } FILE *cabinet; /* pointeur sur FILE */ char NOM_FICHIER[30]; int C ; int nb_patient; int nbb_patient; int CC ; int choixx ; struct patientt { char nom[30]; char prenom [30]; char adresse [30]; char lieu_naissance [30]; char etat_civil [30]; int numero ; }; struct patienttt { char nom[30]; char prenom [30]; char adresse [30]; char lieu_naissance [30]; char etat_civil [30]; int numero ; }; struct date_naissancee { int jour ; int mois ; int annee ; }; struct date_naissanceee { int jour ; int mois ; int annee ; }; struct date_naissancee date_naissancee ; struct date_naissancee date_naissance ; struct patientt patient ; struct patienttt patientt ; printf("\n+-------------------------------------------+\n"); printf("| Creer et remplir le fichier |\n"); printf("\n+-------------------------------------------+\n"); /* Créer et remplir le fichier */ printf("Entrez le nom du fichier a creer : "); scanf("%s", NOM_FICHIER); cabinet = fopen(NOM_FICHIER, "w"); /* write */ printf("ajouter le nombre de patients : "); scanf("%d", &nb_patient); C = 0; while (C<nb_patient) { printf ("-----patient %d-----",C+1); printf ("\n"); printf(" nom : "); scanf("%s",&patient.nom); fprintf(cabinet, "%s\t", patient.nom); printf(" prenom : "); scanf("%s",&patient.prenom); fprintf(cabinet, "%s\t", patient.prenom); printf(" adresse : "); scanf("%s",&patient.adresse); fprintf(cabinet, "%s\t", patient.adresse); printf("----- date et lieu naissance : ----- "); printf ("\n"); printf (" jour:"); scanf ("%d",&date_naissance.jour); fprintf(cabinet, "%d\t",date_naissance.jour); printf (" mois:"); scanf ("%d",&date_naissance.mois); fprintf(cabinet, "%d\t",date_naissance.mois); printf (" annee:"); scanf ("%d",&date_naissance.annee); fprintf(cabinet, "%d\t",date_naissance.annee); printf(" lieu_naissance : "); scanf("%s",&patient.lieu_naissance); fprintf(cabinet, "%s\t",patient.lieu_naissance); printf("\n+--------------------------------+\n "); printf(" etat_civil : "); scanf("%s",&patient.etat_civil); fprintf(cabinet, "%s\t",patient.etat_civil); printf(" numero : "); scanf("%d",&patient.numero); fprintf(cabinet, "%d\t",patient.numero); C++; } printf("+---*****---Gestion des patients---*****----+\n"); printf("| 0 Quitter l'application |\n"); printf("| 1 ajouter un nouveau patient |\n"); printf("| 2 suprimer un patient existant |\n"); printf("| 3 chercher un patient |\n"); printf("| 4 modifier un patient |\n"); printf("|+-----------------------------------------+|\n"); printf ("taper le numero de choix"); scanf("%d",&choixx); switch(choixx) { case 0: return 0 ; case 1: /* Réouverture du fichier */ cabinet = fopen(NOM_FICHIER, "a+"); if (! cabinet) { printf("\aERREUR: Impossible d'ouvrir " "le fichier: %s.\n", NOM_FICHIER); exit(-1); }// *** ajouter un nouveau patient *** printf("| 1 ajouter un nouveau patient |\n"); printf(" nombre de patients a ajouter : " ); scanf("%d", &nbb_patient); CC = 0; while (CC<nbb_patient) { printf ("-----patient %d-----",CC+1); printf ("\n"); printf(" nom : "); scanf("%s",&patient.nom); fprintf(cabinet, "%s\t", patientt.nom); printf(" prenom : "); scanf("%s",&patient.prenom); fprintf(cabinet, "%s\t", patientt.prenom); printf(" adresse : "); scanf("%s",&patient.adresse); fprintf(cabinet, "%s\t", patientt.adresse); printf("----- date_naissance : ----- "); printf ("\n"); printf (" jour:"); scanf ("%d",&date_naissance.jour); fprintf(cabinet, "%d\t",date_naissancee.jour); printf (" mois:"); scanf ("%d",&date_naissance.mois); fprintf(cabinet, "%d\t",date_naissancee.mois); printf (" annee:"); scanf ("%d",&date_naissance.annee); fprintf(cabinet, "%d\t",date_naissancee.annee); printf(" lieu_naissance : "); scanf("%s",&patient.lieu_naissance); fprintf(cabinet, "%s\t",patientt.lieu_naissance); printf(" etat_civil : "); scanf("%s",&patient.etat_civil); fprintf(cabinet, "%s\t",patientt.etat_civil); printf(" numero : "); scanf("%d",&patient.numero); fprintf(cabinet, "%d\t",patientt.numero); C++; } case 2: // *** suprimer un patient existant *** return 0; } fclose(cabinet); getch(); return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Ajouter un enregistrement a un fichier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
2 réponses
Bonjour,
si on ouvre un fichier en mode write (par fopen(NOM_FICHIER, "w")), on crée le fichier qui part de 0.
Pour ajouter dans un fichier, il faut l'ouvrir en mode append par fopen(NOM_FICHIER, "a")
si on ouvre un fichier en mode write (par fopen(NOM_FICHIER, "w")), on crée le fichier qui part de 0.
Pour ajouter dans un fichier, il faut l'ouvrir en mode append par fopen(NOM_FICHIER, "a")
Utilise le mode "a+":
Compilation/test:
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
#include <stdlib.h> #include <stdio.h> #define BUFFERSIZE 128 #define FILDEST "data.txt" int main(int argc, char *argv[]) { FILE *fild; char buffer[BUFFERSIZE]; if ( fild = fopen(FILDEST, "a+") ) { if( fgets( buffer, BUFFERSIZE, fild) ) { puts(buffer); } fprintf(fild , "%s\n", "New data"); fclose(fild); } return EXIT_SUCCESS; }
Compilation/test:
johand@bata:~/src/CCM/C$ touch read_append.c; make read_append ; rm data.txt
cc read_append.c -o read_append
rm: impossible de supprimer 'data.txt': Aucun fichier ou dossier de ce type
johand@bata:~/src/CCM/C$ ./read_append ; cat data.txt
New data
johand@bata:~/src/CCM/C$ ./read_append ; cat data.txt
New data
New data
New data
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
cabinet = fopen(NOM_FICHIER, "a"); /* write */