simon91 | 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 :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(int i, char *argv[])
- {
- /* Noms des fichiers et pointeurs de référence à rentrer sur la ligne de commande */
- char ligne_lu[512];
- char *mot_a_modifier = argv[1];
- char *nouveau_mot = argv[2];
- char const *ancien_fichier = argv[3];
- char const *nouveau_fichier = argv[4];
- FILE *f_in, *f_out;
- f_in = fopen(ancien_fichier ,"r" );
- f_out = fopen(nouveau_fichier ,"w" );
- /* Ouverture de l'ancien fichier en lecture */
- if (f_in!= NULL)
- {
-
- while (fscanf(f_in, "%s", ligne_lu) > 0) //lecture de lignes
- {
- if (strcmp(ligne_lu, mot_a_modifier) == 0) //quand les deux mots sont identiques
- {
- fprintf(f_out, "%s\n", nouveau_mot); //remplace dans le nouveau fichier
- }
- else
- {
- fprintf(f_out, "%s\n", ligne_lu);
- }
- fclose (f_in);
- fclose (f_out);
- }
- }
- else
- {
- printf ("Erreur d'ouverture du fichier\n" );
- }
- return 0;
- }
|
Merci d'avance pour l'aide. |