Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/03/2008, à 00:12

Elessor

C : Impossible de lire un fichier (core dumped)

Bonsoir smile

J'explique succintement mon problème avant de montrer le code, j'ai un dictionnaire de mots (fichier contenant un mot par ligne), et j'essaie de l'ouvrir et de lire le nombre de mot (donc de lignes) avec une fonction écrite en C.

extrait du main.c :

int main()
{
    FILE *dictionnaire = NULL;
    char lettreEntre = 0;
    char *motSecret = NULL, *motTrouve = NULL;
    int tailleMot = 6, nombreMot = 0, compteur = 10, i = 0;
    
    dictionnaire = fopen("dictionnaire","r");
    if (dictionnaire == NULL)
    {
        printf("Le dictionnaire de mot n'a pas pu être chargé");
        exit(0);
    }

    nombreMot = compteMot(dictionnaire);

Fonction qui compte le nombre de mots : le fichier ayant été ouvert avec succès juste avant.

int compteMot(FILE *dict)
{
    char caractereActuel = 0;
    int nombreMot = 0;

    while (caractereActuel != EOF)
    {
        caractereActuel = fgetc(dict);

        if (caractereActuel == '\n')
        {
            nombreMot ++;
        }
    }


    return nombreMot;
}

Voilà voilà, tout va bien à la compilation, et à l'execution, le programme plante à l'appel de la fonction fgetc et me renvoit une vilaine "erreur de segmentation (core dumped)"
Je desespère tongue

J'ai essayé toutes les fonctions de lecture dans un fichier (fgets, fseek, etc) rien à faire...

Merci d'avance pour l'aide que pourront m'apporter les quelques connaisseurs de C qui passent par là big_smile
Bonne soirée wink

Hors ligne

#2 Le 26/03/2008, à 00:55

telliam

Re : C : Impossible de lire un fichier (core dumped)

as tu essayé de l'ouvrir en mode binaire?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#3 Le 26/03/2008, à 07:22

abetsic

Re : C : Impossible de lire un fichier (core dumped)

Bonjour,
dans ma page de man de fgetc, il est marqué que cette fonction renvoie un int et non pas un char. Regardes si ça vient de là.

Hors ligne

#4 Le 26/03/2008, à 10:18

telliam

Re : C : Impossible de lire un fichier (core dumped)

bien vu abetsic, ca doit venir de là, par contre il devrait y avoir un warning à la compilation.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#5 Le 26/03/2008, à 13:02

Elessor

Re : C : Impossible de lire un fichier (core dumped)

Merci beaucoup smile

Ca fonctionne enfin. Bizarrement il n'y avait pas de warning à la compilation...
Le principal c'est que ça marche smile

Merci encore, et bonne journée.

Hors ligne