Salut à tout le monde.
Mon programme consiste à mettre à jour l'une des informations d'un client.
Voici le code source ainsi que le fichier où les clients sont enregistrés. Chaque ligne correspond à un client. La dernière information correspond au numéro du client, elle est invariable.
Le problème apparaît lors de l'écriture qui consiste à remplacer la ligne du client dont l'une des informations doit être mise à jour.
Quelqu'un pourrait-il m'indiquer où réside le problème.
Merci d'avance.
Code:bonapart grégoire 33 paris 23412 435234 hauchecorne george 44 toulouse 123412 1234123 holland francois 45 bruxelles 2134125 123412Code:#include <stdio.h> #include <stdlib.h> #include <string.h> void miseAjour() { int c,i,ligne; char nom[50], prenom[50], nom_1[50], prenom_1[50],chaine[50],reponse,chaine_1[50],chaine_2[50],chaine_3[50],chaine_4[50],chaine_5[50],d_2[50]; FILE* fichier; fichier=fopen("clients.txt","r"); i=0; ligne=0; printf("Tapez le nom et le prénom du client:"); scanf("%s %s", nom_1, prenom_1); printf("Que voulez-vous mettre Ã* jour ?"); scanf("%s",&reponse); printf("\n%c",reponse); switch(reponse) { case 'n' : printf("Tapez le nouveau nom : "); scanf("%s",chaine); break; case 'p' : printf("Tapez le nouveau prénom : "); scanf("%s",chaine); break; case'o': printf("Tapez le nouvel âge : "); scanf("%s",chaine); break; case 'a' : printf("Tapez la nouvelle adresse : "); scanf("%s",chaine); break; case 't' : printf("Tapez le nouveau numéro de téléphone : "); scanf("%s",chaine); break; default : printf("Tapez une réponse valide !"); } do { fscanf(fichier,"%s %s", nom, prenom); if(strcmp(nom,nom_1) == 0 && strcmp(prenom,prenom_1) == 0) { ligne=i; break; } while(c=fgetc(fichier) != '\n'); i++; printf("%d",i); } while(fscanf(fichier,"%d",&c)!=EOF); printf("\n%d\n",ligne); fclose(fichier); fichier=fopen("clients.txt","r+"); i=0; while(i<ligne) { while(c=fgetc(fichier)!='\n'); i++; } fscanf(fichier,"%s %s %s %s %s %s", chaine_1,chaine_2,chaine_5,chaine_3,chaine_4,d_2); printf("%s %s %s %s %s %s", chaine_1,chaine_2,chaine_5,chaine_3,chaine_4,d_2); fclose(fichier); fichier=fopen("clients.txt","r+"); i=0; while(i<ligne) { while(c=fgetc(fichier)!='\n'); i++; } switch(reponse) { case 'n' : fprintf(fichier,"%s %s %s %s %s %s", chaine,chaine_2,chaine_5,chaine_3,chaine_4,d_2); break; case 'p' : fprintf(fichier,"%s %s %s %s %s %s", chaine_1,chaine,chaine_5,chaine_3,chaine_4,d_2); break; case'o': fprintf(fichier,"%s %s %s %s %s %s", chaine_1,chaine_2,chaine,chaine_3,chaine_4,d_2); break; case 'a' : fprintf(fichier,"%s %s %s %s %s %s", chaine_1,chaine_2,chaine_5,chaine,chaine_4,d_2); break; case 't' : fprintf(fichier,"%s %s %s %s %s %s", chaine_1,chaine_2,chaine_5,chaine_3,chaine,d_2); break; default : printf("Tapez une réponse valide !"); } } void main() { miseAjour(); }
-----