zdarbilo | bonjour a tous depuis hier j'essaie de modifier un fichier a une ligne precise, je m'explique :
j'ai un fichier structuré de cette facon : une ligne avec le nom d'un spectacle et la suivante avec le nombre de place dipsonibles pour ce spectacle je souhaite modifier le nombre de place pour un spectacle precis , je connais le nombre de ligne ainsi que la ligne que je souhaite modifier j'utilise fgets pour me deplacer dans le fichier et fputs pour ecrire à la ligne souhaité voici ma fonction mon probleme est que celle ci n'ecrit rien dans le fichier :
Code :
- int test_spect(int num_spect,int nbre_place,char *place[20]){
- int a;char line[256];char* place_final;
- printf("%s",place[num_spect]);
- int init_place=atoi(place[num_spect]);
- printf("nombre de place initiale :%d",init_place);
- printf("SPECTACLE initiale :%d",num_spect);
- if(init_place>=nbre_place){
- int place_rest=init_place-nbre_place;
- printf("nombre de place restante :%d",place_rest);
- F1 = fopen("toto.txt","r+" ); //ouverture en lecture/ecriture
- if(F1==NULL){
- fprintf(stderr,"Impossible d'ouvrir le fichier \n" );
- }
- printf("............ Ouverture du fichier \n" );
- printf("bloque a" );
- for(a=1;a<num_spect;a++){
- fgets(line,256,F1);
- fgets(line,256,F1);
- }
- fgets(line,256,F1);
- place_final=malloc(sizeof(place_rest));
- sprintf(place_final,"%d",place_rest);
- printf("nouvelle valeure %s\n",place_final);
- fputs(place_final,F1);
- printf("ecriture fichier reussie\n" );
- return 1;
- }
- else return 2;
- /*fermeture du fichier*/
- if(fclose(F1)==EOF){
- fprintf(stderr,"Probleme de fermeture du fichier \n" );
- exit(1);
- printf(".................... fermeture du fichier \n" );
- }
- exit(0);
- }
|
Voila ma fonction j'ai mis pas mal de printf pour essayer de reperé ou ca blouqe mais apperment il effectue toute la fonction mais ne modifie rien au fichier.
|