IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème avec les fichiers


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut problème avec les fichiers
    salut
    j'ai fait un programme qui lit dans un fichier et quand il trouve .jout il lui ajoute un autre fichier
    voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define N 1000
     
    main()
    {
          FILE *fich1 = NULL , *fich2 = NULL ;
          char T[N] , c = 0  ;
          char ajou[] = ".ajout" ;
     
          fich1 = fopen("3.txt" , "r+" );
          fich2 = fopen("4.txt" , "r" );
     
          if( fich1 == NULL && fich2 == NULL )
          printf("ERROR");
          else
          {
     
          while( fscanf( fich1 , "%s" , T ) != EOF )
          {
                 if( strcmp( ajou , T ) == 0 )
                 {
                     do
                     {
                             c = fgetc(fich2) ;
                             fprintf(fich1 , "%c" , c);
                     }
                     while( c != EOF );
                 }
          }
     
          fclose(fich1);
          fclose(fich2);
          }
     
          getch();
    }
    cepandant il marche pas ... il n'ecrit rien au 1er fichier !!!
    pourquoi ?

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par yous18 Voir le message
    salut
    j'ai fait un programme qui lit dans un fichier et quand il trouve .jout il lui ajoute un autre fichier
    voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define N 1000
     
    main()
    {
          FILE *fich1 = NULL , *fich2 = NULL ;
          char T[N] , c = 0  ;
          char ajou[] = ".ajout" ;
     
          fich1 = fopen("3.txt" , "r+" );
          fich2 = fopen("4.txt" , "r" );
     
          if( fich1 == NULL && fich2 == NULL )
          printf("ERROR");
          else
          {
     
          while( fscanf( fich1 , "%s" , T ) != EOF )
          {
                 if( strcmp( ajou , T ) == 0 )
                 {
                     do
                     {
                             c = fgetc(fich2) ;
                             fprintf(fich1 , "%c" , c);
                     }
                     while( c != EOF );
                 }
          }
     
          fclose(fich1);
          fclose(fich2);
          }
     
          getch();
    }
    cepandant il marche pas ... il n'ecrit rien au 1er fichier !!!
    pourquoi ?
    Pour gérer les fichiers, je recommande une organisation bien plus rigoureuse, qui gère automatiquement les cas d'erreur :
    1 Gérer le premier fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #include<stdio.h>
     
    int main (void)
    {
    #define F1 "3.txt"
     
       FILE *fich1 = fopen (F1, "r+");
       if (fich1 != NULL)
       {
             /* traitements */
     
          fclose (fich1), fich1 = NULL;
       }
       else
       {
          perror (F1);
       }
     
       return 0;
    }
    2 ajouter le code pour le 2ème fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    #include<stdio.h>
     
    int main (void)
    {
    #define F1 "3.txt"
    #define F2 "4.txt"
     
       FILE *fich1 = fopen (F1, "r+");
       if (fich1 != NULL)
       {
          FILE *fich2 = fopen (F2, "r");
          if (fich2 != NULL)
          {
             /* traitements */
     
             fclose (fich2), fich2 = NULL;
          }
          else
          {
             perror (F2);
          }
          fclose (fich1), fich1 = NULL;
       }
       else
       {
          perror (F1);
       }
     
       return 0;
    }
    Cette construction logique garantit une gestion parfaite des erreurs et des fermetures de fichiers, ce qui n'est pas le cas de ton code.

    L'excution donne évidemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    3.txt: No such file or directory
     
    Press ENTER to continue.
    Car tu n'as pas donné le fichier...
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    merci Emmanuel je vais aprendre votre methode qui detecte le erreurs ... mais quand je l'ai utilisé rien n'a changé dans les 2 fichiers et aucun message d'erreur n'est affiché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define N 1000
     
    int main (void)
    {
    #define F1 "3.txt"
    #define F2 "4.txt"
     
          char T[N] , c = 0  ;
          char ajou[] = ".ajout" ;
     
       FILE *fich1 = fopen (F1, "r+");
       if (fich1 != NULL)
       {
          FILE *fich2 = fopen (F2, "r");
          if (fich2 != NULL)
          {
          while( fscanf( fich1 , "%s" , T ) != EOF )
          {
                 if( strcmp( ajou , T ) == 0 )
                 {
                     do
                     {
                             c = fgetc(fich2) ;
                             fprintf(fich1 , "%c" , c);
                     }
                     while( c != EOF );
                 }
          }
     
     
             fclose (fich2), fich2 = NULL;
          }
          else
          {
             perror (F2);
          }
          fclose (fich1), fich1 = NULL;
       }
       else
       {
          perror (F1);
       }
     
       getch();
       return(0);
    }
    de quel fichier tu parlais quand tu m'a dit qu'il une erreur à l'execution ?

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yous18 Voir le message
    merci Emmanuel je vais aprendre votre methode qui detecte le erreurs ... mais quand je l'ai utilisé rien n'a changé dans les 2 fichiers et aucun message d'erreur n'est affiché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define N 1000
     
    int main (void)
    {
    #define F1 "3.txt"
    #define F2 "4.txt"
     
          char T[N] , c = 0  ;
          char ajou[] = ".ajout" ;
     
       FILE *fich1 = fopen (F1, "r+");
       if (fich1 != NULL)
       {
          FILE *fich2 = fopen (F2, "r");
          if (fich2 != NULL)
          {
          while( fscanf( fich1 , "%s" , T ) != EOF )
          {
                 if( strcmp( ajou , T ) == 0 )
                 {
                     do
                     {
                             c = fgetc(fich2) ;
                             fprintf(fich1 , "%c" , c);
                     }
                     while( c != EOF );
                 }
          }
     
     
             fclose (fich2), fich2 = NULL;
          }
          else
          {
             perror (F2);
          }
          fclose (fich1), fich1 = NULL;
       }
       else
       {
          perror (F1);
       }
     
       getch();
       return(0);
    }
    Je n'arrive pas vraiment à piger ce que tu cherches à faire. Bon, je vais te dire ce que je lis
    1) tu ouvres un fichier 1 en R/W et un fichier 2 en R
    2) tu lis un mot dans le fichier 1
    3) tu compares ce mot avec ".ajou"
    4) si c'est le cas alors à l'endroit où tu te trouves, tu écris tout le contenu du fichier 2 (y compris EOF car tu ne sors pas assez tôt).

    Faut savoir que quand t'écris dans un fichier, t'écris à l'endroit où le pointeur interne se trouve. Donc quand tu lis un mot ton pointeur se trouve à la fin du mot. Si tu te mets à écrire tu vas écrire après le mot mais en écrasant ce qu'il y avait au préalable (il n'y a pas d'insertion). C'est bien ça que tu veux ?

    Ensuite au mot suivant, si c'est ajout tu vas tenter de rajouter le contenu du 2° fichier mais ça ne marchera plus puisque l'index interne du 2° fichier se trouve déjà à la fin => tu peux pas le relire (ou alors faut te repositionner au début => fseek())

    Bon, essaye de mieux définir en toi-même quel est ton but pour traduire ce but en algo.
    Bon, sinon ta boucle interne de copie est mal écrire. Faut sortir au moment du EOF et non après...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ((c=fgetc(fich2)) != EOF)
           fprintf(fich1 , "%c" , c);
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par yous18 Voir le message
    de quel fichier tu parlais quand tu m'a dit qu'il une erreur à l'execution ?
    Bah, c'est indiqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3.txt: No such file or directory
    Ce fichier ne se trouve pas comme par magie sur mon PC... C'est à toi de le publier (au moins son contenu si c'est du texte, sinon, un lien ou une pièce jointe...)
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    voila 3.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    salut ca va
    .ajout 
    ok je t'attend
    et 4.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oui yous
    on va au cinema

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    j'ai compri le curseur est à la fin du fichier
    mais t'a dit qu'il y a pas un moyen d'insertion car c'est mon but de ce exercice faire un programme qui fai comme include ajout le contenu d'un autre fichier.

    et moi j'ai qu'un seul ajout pour le moment dans mon 1er fichier alors le curseur du 2eme fichier ne sera pas à la fin car il sera lit pour la 1er fois.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Hum. Tu sais que quand t'as des trucs à rajouter tu peux éditer ton post plutôt que d'en écrire 3 à la suite ???

    Citation Envoyé par yous18 Voir le message
    voila 3.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    salut ca va
    .ajout 
    ok je t'attend
    et 4.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oui yous
    on va au cinema
    Je t'attends

    Citation Envoyé par yous18 Voir le message
    j'ai compri le curseur est à la fin du fichier
    mais t'a dit qu'il y a pas un moyen d'insertion car c'est mon but de ce exercice faire un programme qui fai comme include ajout le contenu d'un autre fichier.
    Non, je n'ai pas dit qu'il n'y avait pas moyen d'insérer, j'ai dit que la façon dont toi tu l'avais écrit cela n'insérait pas mais écrasait. En fait, si on applique ton code à ton exemple, ton fichier final sera de cette forme
    salut ca va
    .ajout
    oui yous
    on va au cinema
    Pour insérer un second fichier dans un premier fichier, la méthode la plus basique consiste à lire le premier fichier, lire le second et d'écrire un 3° en y mettant les infos du premier ou du 2° quand il faut. Ensuite on remplace le premier par le 3°.

    Citation Envoyé par yous18 Voir le message
    et moi j'ai qu'un seul ajout pour le moment dans mon 1er fichier alors le curseur du 2eme fichier ne sera pas à la fin car il sera lit pour la 1er fois.
    Alors ce n'est pas la peine de mettre le bloc d'ajout dans la boucle si tu ne le fais qu'une fois. N'importe qui d'habitué qui va te relire pensera que t'as raté une étape...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    En fait, si on applique ton code à ton exemple, ton fichier final sera de cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    salut ca va
    .ajout 
    oui yous
    on va au cinema
    non justemment mon 1er fichier n'a pas etait modifié
    Citation Envoyé par Sve@r Voir le message
    Pour insérer un second fichier dans un premier fichier, la méthode la plus basique consiste à lire le premier fichier, lire le second et d'écrire un 3° en y mettant les infos du premier ou du 2° quand il faut. Ensuite on remplace le premier par le 3°.
    celle là est une bonne methode je vais la faire apres avoir fini de ce probléme .

    Citation Envoyé par Sve@r Voir le message
    Alors ce n'est pas la peine de mettre le bloc d'ajout dans la boucle si tu ne le fais qu'une fois. N'importe qui d'habitué qui va te relire pensera que t'as raté une étape...
    nn je vais plus tard fair plusieur ajout mais pour le moment je suis coincé avec ce probléme de fichier inchangé

  10. #10
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    il parait que je ne peut pas ecrire dans le fich1 celui a partir duquel je lit mais je peut ecrire dans un autre fichier c'est bizzare car fich1 est ouvert en mode r+

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yous18 Voir le message
    il parait que je ne peut pas ecrire dans le fich1 celui a partir duquel je lis
    Faux

    Citation Envoyé par yous18 Voir le message
    c'est bizzare car fich1 est ouvert en mode r+
    C'est ce que dit la doc donc c'est vrai

    Citation Envoyé par yous18 Voir le message
    non justemment mon 1er fichier n'a pas etait modifié
    Je viens de taper ton tout premier code (celui de ton premier post) sur un système Linux et il fonctionne. Et il donne presque exactement ce que j'avais prévu.

    Voici, en fin d'exécution, le résultat de mon fichier "3.txt"
    salut ca va
    .ajoutoui yous
    on va au cinéma
    ÿ
    J'avais juste pas pensé que le <return> après le ".ajout" était lui-aussi écrasé (c'est pour ça que le "oui yous" est collé après) et au EOF que tu écris => le "ÿ"

    Cela signifie donc que ton code, sur un Linux, fonctionne au-moins en ce qui concerne la modif du fichier. Donc je t'invite à recompiler de nouveau ton premier code et à le retester de nouveau avec rigueur et méthode. Ensuite tu pourras t'attaquer à le faire évoluer...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    merci Sve@r
    mais moi sur windows xp quand j'ai compilé rien n'a changé
    tu peut tester sur windows ?

  13. #13
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yous18 Voir le message
    merci Sve@r
    mais moi sur windows xp quand j'ai compilé rien n'a changé
    tu peut tester sur windows ?
    Je viens de le faire. Ca marche pas. J'en déduis que le mode "r+" ne fonctionne pas sous zindow.
    De toute façon, comme la méthode est mauvaise je dirais que ce n'est pas trop grave. Faut passer par un 3° fichier qui sera le mix des deux premiers...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    merci
    mais il y a un probléme avec le "\n" fscanf ne le lit pas avec cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( fscanf( fich1 , "%s" , T ) != EOF )
    dans le 3ème fichier il y a pas saut à la ligne
    il y a une solution pour ça ?

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yous18 Voir le message
    merci
    mais il y a un probléme avec le "\n" fscanf ne le lit pas avec cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( fscanf( fich1 , "%s" , T ) != EOF )
    Normal. "\n" est un indicateur signifiant "saisie validée". scanf() le lit mais ne le stocke pas...

    Citation Envoyé par yous18 Voir le message
    dans le 3ème fichier il y a pas saut à la ligne
    Quel 3° fichier ???
    Citation Envoyé par yous18 Voir le message
    il y a une solution pour ça ?
    Oui. Remplacer ton fscanf() par fgets()
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #16
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Oui. Remplacer ton fscanf() par fgets()
    mais fgets ne lit pas mot par mot moi il faut je cherche le mot .ajout

  17. #17
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Je viens de le faire. Ca marche pas. J'en déduis que le mode "r+" ne fonctionne pas sous zindow.
    De toute façon, comme la méthode est mauvaise je dirais que ce n'est pas trop grave. Faut passer par un 3° fichier qui sera le mix des deux premiers...
    Le mode r+ nécessite des précautions lorsqu'on passe de lecture en écriture ou l'inverse
    Le passage de lecture en écriture impose, si on n'est pas en fin de fichier, l'appel d'une fonction de positionnement dans le fichier au préalable (fseek, rewind,fsetpos)
    Le passage d'écriture en lecture impose au préalable d'effectuer un fflush ou l'appel d'une fonction de positionnement dans le fichier
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  18. #18
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yous18 Voir le message
    mais fgets ne lit pas mot par mot moi il faut je cherche le mot .ajout
    Il nous manque tes contraintes pour bien comprendre. Est-ce que ce mot ".ajout" se trouve seul sur une ligne ou peut-il se trouver au milieu d'autres mots ?

    Par ailleurs fgets() lit une ligne certes mais rien ne t'interdit de lire et stocker toute la ligne, de supprimer le "\n" puis de la parser via strtok_r() pour en extraire chaque mot. Au lieu d'avoir une boucle t'en auras 2...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Problème avec les fichiers .CHM
    Par Safaritn dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 29/11/2006, 13h37
  2. [TexShop/MacOSX] Problème avec les fichiers .eps
    Par rudix dans le forum Editeurs / Outils
    Réponses: 4
    Dernier message: 09/10/2006, 14h07
  3. Problème avec les fichiers
    Par Guillou dans le forum C
    Réponses: 3
    Dernier message: 13/05/2006, 12h54
  4. Problème avec les fichiers en C++
    Par snatch321 dans le forum C++
    Réponses: 7
    Dernier message: 09/05/2006, 19h07
  5. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo