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 :

extraction des mots d'un texte


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 12
    Par défaut extraction des mots d'un texte
    Bonjour à tous
    j'ai un ti souci avec ma fonction qui lit un fichier texte en entree et affiche les mot compsants chacune des ligne du fichier
    voila la fonction :
    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
    int main(void)
    {
       FILE* fichier = NULL;
       char chaine[TAILLE_MAX] = "";
       char *tok;
     
     
      int c;
      inithashtab();
      fichier = fopen(ENTREE, "r");
       if (fichier != NULL)
        {
            while (fgets(chaine, TAILLE_MAX, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
            {
                printf("%s", chaine); // On affiche la chaîne qu'on vient de lire
                tok = strtok(chaine, " ");
                while(tok != NULL){
                printf("Mot: %s\n", tok);
                tok = strtok(NULL, " ");
            }
            } 
                    fclose(fichier);
        }
     
        return 0;
     
      return(EXIT_SUCCESS);
    }
    Il m'affiche une erreur de segmentation apres l'affichage de la 1ere ligne du texte
    Avez vous une idée svp?
    MErci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    fgets(chaine, TAILLE_MAX - 1, fichier). Il faut stocker le '\0'. Donc il me semble bien que c'est taille - 1 pour fgets.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2011
    Messages : 71
    Par défaut
    Je ne vois pas d'erreur qui pourrait faire planter le programme.

    Donne nous la valeur de TAILLE_MAX ainsi que ton texte si tu en as la possibilité.

    J'ai exécuté ce code chez moi sur un texte bidon et je n'ai pas d'erreur de segmentation en tout cas.

    Normalement fgets s'occupe du '\0'.

  4. #4
    Membre averti
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 12
    Par défaut
    Citation Envoyé par Neckara Voir le message
    fgets(chaine, TAILLE_MAX - 1, fichier). Il faut stocker le '\0'. Donc il me semble bien que c'est taille - 1 pour fgets.
    Merci Neckara
    c'etait un probleme plus simple que ca , j'ai oublié d'introduire 'en-tête string.h

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Neckara Voir le message
    fgets(chaine, TAILLE_MAX - 1, fichier). Il faut stocker le '\0'. Donc il me semble bien que c'est taille - 1 pour fgets.

    Si j'interprète correctement cette page de manuel ( http://man.developpez.com/man3/fgets.3.php ), ce n'est pas nécessaire :
    char * fgets (char * s, int size, FILE * stream);

    (...)

    fgets() lit au plus size - 1 caractères depuis stream et les place dans le buffer pointé par s. La lecture s'arrête après EOF ou un retour-chariot. Si un retour-chariot (newline) est lu, il est placé dans le buffer. Un caractère nul '\0' est placé à la fin de la ligne.
    Enfin une fonction maligne !

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Mea culpa, j'ai dû confondre avec write et read

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction des mots-clé d'un fichier texte
    Par Jaynes dans le forum Documents
    Réponses: 5
    Dernier message: 05/04/2011, 16h54
  2. [TPW] Extraction des mots d'un texte
    Par adrian07 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 12/01/2009, 13h58
  3. Organisation des mots d'un texte donne
    Par AlphaH dans le forum VBScript
    Réponses: 6
    Dernier message: 10/01/2008, 15h41
  4. comment supprimer des mots d'un texte
    Par visteur dans le forum Langage
    Réponses: 3
    Dernier message: 16/03/2006, 15h11
  5. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

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