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 :

pb d'extraction de mot dans une fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut pb d'extraction de mot dans une fichier
    Bonsoir mes amis,
    j'ai un fichier .txt,et je veut faire un programme qu'a chaque fois trouve le mot "alors",il fait le copie de ce mot et le mettre dans un variable mais j'ai trouvé une erreur d'execution
    je vous donne le fichier texte,mon programme et le resultat,svp j'ai besoin de votre aide

    le fichier texte
    d.txt
    Fait
    -Fait france
    -Fait paris
    -Fait italie
    -Fait europe
    regle
    R1# Si paris alors france
    R2# Si france alors europe
    R3# Si venis alors italie
    R4# Si italie alors europe



    le programme
    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
     
    #include<stdio.h>  
    #include<stdlib.h>  
    #include<string.h>  
     
    int main(void)   
    {                       
     FILE *fp;                                                         
     char mot[BUFSIZ];  
     char buffer[BUFSIZ];  
     fp=fopen("d.txt","r");                                      
        if(fp==NULL)  
         {   
      fputs("erreur à l'ouverture du fichier\n",stderr);  
      return EXIT_FAILURE;   
         }  
            while(fgets(buffer, sizeof(buffer),fp))                    
        {  
     
     
            char *c=strchr(buffer,'\n');                               
                     if(c!=NULL)  
                     {  
                      *c='\0';  
                     }  
          if((strstr(buffer,"alors")==0))  
      {   
                   fseek(fp,6,SEEK_CUR);  
                           fgets(mot,100,fp);  
                    puts(mot);  
                    }  
       }  
    fclose(fp);  
    return 0;  
    }





    le resultat d'execution
    -Fait france

    -Fait italie

    R1# Si paris alors france

    R1# Si paris alors france


    merci beaucoup pour votre aide

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour.

    Les problèmes viennent de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if((strstr(buffer,"alors") != 0))  
      {   
                   fseek(fp,6,SEEK_CUR);  
                           fgets(mot,100,fp);  
                    puts(mot);  
                    }
    Tu utilises strstr à l'envers : tu dois confondre avec strcmp.
    Tu fais une recherche dans le buffer buffer, mais tu continue à lire le fichier pour remplir mot, alors que c'est dans buffer que tu devrais te servir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if((strstr(buffer,"alors")==0))  
    {   
        puts(buffer + 6);   
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/05/2012, 16h47
  2. Réponses: 2
    Dernier message: 29/07/2010, 21h58
  3. compter le nombre de mot dans une ligne fichier sous shell
    Par ninsekh dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 18/12/2008, 17h54
  4. Extraction mots dans une chaine de caractère
    Par mercure07 dans le forum C
    Réponses: 6
    Dernier message: 30/07/2008, 13h54
  5. detecter une ligne a un seul mot dans un fichier txt
    Par malikoo dans le forum Général Python
    Réponses: 9
    Dernier message: 04/07/2007, 19h43

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