Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1609 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème avec mon programme

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec mon programme

n°2272699
simon91
Posté le 04-01-2016 à 14:55:41  profilanswer
 

Bonjour,
 
J'ai un souci avec le résultat de ma fonction, dans mon nouveau fichier seule la première ligne est remplacée par le mot à modifier mais pas les autres lignes du fichier à lire.
Mon fichier à lire contient un mot par ligne.
Voici mon code:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main(int i, char *argv[])
  5. {
  6.   /* Noms des fichiers et pointeurs de référence à rentrer sur la ligne de commande */
  7.   char ligne_lu[512];
  8.   char *mot_a_modifier = argv[1];
  9.   char *nouveau_mot = argv[2];
  10.   char const *ancien_fichier = argv[3];
  11.   char const *nouveau_fichier = argv[4];
  12.   FILE *f_in, *f_out;
  13.   f_in = fopen(ancien_fichier ,"r" );
  14.   f_out = fopen(nouveau_fichier ,"w" );
  15.   /* Ouverture de l'ancien fichier en lecture */
  16.   if (f_in!= NULL)
  17.   {
  18.  
  19.      while (fscanf(f_in, "%s", ligne_lu) > 0) //lecture de lignes
  20.      {
  21.        if (strcmp(ligne_lu, mot_a_modifier) == 0) //quand les deux mots sont identiques
  22.           {
  23.             fprintf(f_out, "%s\n", nouveau_mot); //remplace dans le nouveau fichier
  24.           }
  25.        else
  26.           {
  27.             fprintf(f_out, "%s\n", ligne_lu);
  28.           }
  29.        fclose (f_in);
  30.        fclose (f_out);
  31.      }
  32.   }
  33.   else
  34.   {
  35.       printf ("Erreur d'ouverture du fichier\n" );
  36.   }
  37.   return 0;
  38. }


     
 
Merci d'avance pour l'aide.

mood
Publicité
Posté le 04-01-2016 à 14:55:41  profilanswer
 

n°2272702
rat de com​bat
attention rongeur méchant!
Posté le 04-01-2016 à 15:08:29  profilanswer
 

Tu fermes tes fichiers après le premier passage dans la boucle, autrement dit faut sortir les fclose() de la boucle.
Et tu ne testes pas si f_out est valide.

n°2272703
simon91
Posté le 04-01-2016 à 15:14:38  profilanswer
 

rat de combat a écrit :

Tu fermes tes fichiers après le premier passage dans la boucle, autrement dit faut sortir les fclose() de la boucle.
Et tu ne testes pas si f_out est valide.


 
C'est réglé. Merci beaucoup ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème avec mon programme

 

Sujets relatifs
Probleme amélioration programmeBesoin d'aide (résolution d'un probleme sur un programme fini )
un problème d'un mon programme ?Problème programme ( raspberry + arduino )
Problème programme C[Ajax + Js ] Problème pour un programme
Problème programme calculatriceTI-89 Turgent: problème d'exécution d'aun programme
Problème programme cPerl [Modification d'un programme existant] Probleme avec If
Plus de sujets relatifs à : Problème avec mon programme


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR