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 :

probleme de compatibilité avec une variable et une fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut probleme de compatibilité avec une variable et une fonction
    bonjour a tous je fais appelle a vous car j'ai besoin de votre aide concerant une fonction et une variable qui reçoit ce que la fonction renvoit.

    Tout d'abord voici le code source :

    variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char motAchercher[TAILLE] = ""
     motAchercher = choisirUnMot (fichier, nombreMots);
    et la fonction qui est censé retourner le mot que l'on a piocher dans un 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
    32
    33
    34
    35
    36
    char  *choisirUnMot (FILE *file, int numeroLigne)
    {
     
    srand(time(NULL));
    int hasard = rand()%numeroLigne;
     
     
        int  caractere = 0;
        char  motAretourner[30];
        rewind(file);
     
        if ( file != NULL && numeroLigne != 0)
        {
            while ( (caractere = fgetc(file))!= EOF && hasard != 0)
            {
     
                if (caractere == '\n')
                {
                    hasard--;
                    printf ("trouver n\n");
     
                }
     
     
            }
             fgets(motAretourner, 30, file);
             printf ("mot retourner %s\n", motAretourner);
             return motAretourner;
        }
        else
        {
            printf ("Une erreur s'est produite lors de la recherche d\'un mot\n");
            return EXIT_FAILURE;
        }
     
    }
    le compilateur m'indique comme erreur : "incompatible types in assignment"

    Je ne vois pas pourquoi il y a une erreur car tout deux son de type char

    PS : merci d'avance pour vos explications et aides

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Je ne sais pas sur quelle ligne il te met le warning, mais j'ai vu deux choses qui m'ont choqué :

    La fonction est censée renvoyer un pointeur sur char. EXIT_FAILURE est un entier. Ce serait plus logique de retourner NULL.

    Il ne faut JAMAIS retourner l'adresse d'un objet local à une fonction. Une fois que tu sors de la fonction, l'objet créé n'existe plus et le contenu en mémoire (sur la pile, pour être précis) est susceptible d'être écrasé à n'importe quel moment. Du coup, l'adresse retournée pointe sur n'importe quoi.

    Une chose aussi :
    En principe, ceci doit être exécuté une seule fois. Or, si la fonction est appelée plusieurs fois, c'est pas terrible.
    Le mieux, c'est de mettre ça en début de la fonction "main".

    EDIT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char motAchercher[TAILLE] = ""
    motAchercher = choisirUnMot (fichier, nombreMots);
    "motAchercher" est un tableau. Tu ne peux pas faire "tableau=adresse".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut
    je te remercie pour tes remarques, qui m'aideront (a progresser) a l'avenir.
    Je n'arrive pas a trouver de solution pour regler ce probleme, a part mettre le code dans le main.c mais sa va etre un grand bazar.
    Je cherche mais je ne trouve pas.

    Une solution de votre part peut etre ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Le problème, c'est que je ne comprends déjà pas ce que ton programme est censé faire réellement.

    et la fonction qui est censé retourner le mot que l'on a piocher dans un fichier :
    C'est-à-dire ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut
    c'est cette fonction justement

    - on a comme parametre le fichier ou se trouve les mots et comme 2eme parametre le nombre de mots dans ce fichier

    - ensuite on fait un rand avec le nombre de mots dans ce fichier, pour cela on fait moins 1 a hasard lorsqu'il rencontre ce caractere è\n' (donc changement de ligne)

    - une fois celle ci arriver a 0 on fait appelle a fgets pour transferer le mot du fichier a la ligne X dans motAretourner

    - et ensuite on fait un return motAchercher (mais bon c'est faux tu me la expliqué pourquoi)


    voila

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut
    je veux en faite creer une sorte de pendu sur console.

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. [debutant]passager une variable d'une page a une autre
    Par Eisy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2006, 11h18
  3. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19
  4. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41
  5. Affecter une variable javascript à une variable php
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 20h58

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