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 passage d'un tableau a une fonction


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Probleme passage d'un tableau a une fonction
    Bonjour à tous voila j'ai presque honte de poser une question aussi naze vraiment mais je n'arrive pas a trouver de solutions...

    Voici le debut de mon main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     char motSecret[100]="oki";
        char mot[30];
        int coups=10;
        char caractere;
        char *P1,*P2;
        int ajoute;
     
        printf("***Bienvenu dans le pendu!!!***\n\n\n");
     
        printf("Etape 1 : %s",motSecret);
     
        genererMots(motSecret);
    Voici le debut de mon fichier genererMots :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int genererMots(char motSecret[])
     {
        FILE *fichier=NULL;
        int ligne=0;
        char tab[30];
        int i;
     
        printf("Etape 2 :%s",motSecret);
    Voila la compilation marche mais ca bug arrivé quand j'arrive au printf de l'étape 2 ...

    Si vous pouviez m'eclaircir ca je dois avouer que je bloque merci beaucoup.

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut


    même si je ne bosse pas avec ce genre de prototype (je préfère int genererMots(char *motSecret)), ton code marche avec visual 2008.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    ok c'est bien ce que je pensais je suis sous code :: blocks quand je refais un fichier en faisant un copier coller simplement des elements dont jai besoin pour faire passer mon tableau a la fonction et bien ca marche niquel mais quand jai tout mon code source de main et de l'autre fichier ca deconne.

    C'est quoi c'est code :: blocks qui delire?
    C'est plus stable sous Visual?

    En tout cas merci de ta réponse.

  4. #4
    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
    C'est quoi c'est code :: blocks qui delire?
    C'est plus stable sous Visual?
    Certainement pas.

    Que signifie
    quand jai tout mon code source de main et de l'autre fichier
    ? Que la fonction est dans un fichier et le main dans un autre ?

    L'erreur est ailleurs. Peux-tu poster le code qui ne fonctionne pas ?
    On ne voit rien qui justifie cette erreur du printf() sur ces tronçons de code
    Publication : Concepts en C

    Mon avatar : Glenn Gould

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bien sur!Il s'agit d'un simple jeu de pendu .Je dois envoyer un tableau a une fonction pour pouvoir choisir un mot aléatoire parmis quelques mots situé dans un fichier.Le probleme c'est que je n'arrive pas a récupérer ce tableau.

    Voila mon fichier main en entier :

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <string.h>
    #include "dico.h"
    char lireCaractere();
     
    int main()
    {
        char motSecret[100]="oki";   // c'est ce tableau que j'essaye de faire passer dans ma fonction
        char mot[30];
        int coups=10;
        char caractere;
        char *P1,*P2;
        int ajoute;
     
        printf("***Bienvenu dans le pendu!!!***\n\n\n");
     
        printf("Etape 1 : %s",motSecret);   // l'etape 1 marche niquel  ca plante quand le tableau est envoyé au fichier dico.c
     
        genererMots(motSecret);//fonction permettant dobtenir un mot au hasard parmis plusieurs dans un fichier.
     
     
        //Contenu du jeu du pendu
        do
        {
            ajoute=0;
            printf("Il vous reste %d coup%c a jouer",coups,(coups==1) ? ' ' : 's');
            printf("\nQuel est le mot secret ? %s",mot);
            printf("\nProposez une lettre : ");
            caractere=lireCaractere();
            for(P1=motSecret,P2=mot;*P1;P1++,P2++)
            {
                if (*P1==caractere)
                {
                    *P2=*P1;
                    ajoute=1;
     
                }
            }
            if(!ajoute) coups--;
     
            putchar('\n');
        }while(strcmp(motSecret,mot) && coups>0);
     
        if (coups==0) printf("Desole vous avez perdu\n");
        else if (!(strcmp(motSecret,mot))) printf("Bravo ! Le mot secret etait bien : %s\n",mot);
     
     
        return 0;
     
    }
     
     
    char lireCaractere()
    {
        char caractere = 0;
     
        caractere = getchar(); // On lit le premier caractère
        caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà
     
        // On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
        while (getchar() != '\n') ;
     
        return caractere; // On retourne le premier caractère qu'on a lu
     
    }

    et voici le fichier dico.c :

    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
     
    #include <time.h>
    #include <stdlib.h>
    #include <stdio.h>
     
     
    int genererMots(char motSecret[])
     {
        FILE *fichier=NULL;
        int ligne=0;
        char tab[30];
        int i;
     
        printf("Etape 2 :%s",motSecret); // cette ligne plante impossible d'acceder au tableau.
     
     
     
        fichier=fopen("dico.txt","r");
        if(fichier==NULL)
        {
            exit(1);
        }
        while(fgets(tab,30,fichier))
        {
            ligne++;
        }
        srand(time(NULL));
        ligne = (rand() % (ligne - 1 + 1)) + 1;
        rewind(fichier);
       /* for (i=0;i<ligne;i++)
        {
            fgets(motSecret,30,fichier);
        }
        printf("Mot secret vaut : %s",motSecret);*/
     
        fclose(fichier);
     }
    Voila a l'étape 2 ca bug...

  6. #6
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Bonsoir,
    Tu as une erreur de compilation, ou c'est le programme qui plante ?
    Que ce soit l'un ou l'autre, tu as quoi en sortie écran ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Résolu : c'était mon prototype de ma fonction annexe qui merdait j'envoyais une variable au lieu d'un tableau.

    Pourtant je pensais qu'une erreur pareille aurait du être détectée à la compilation.

    Enfin merci!

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

Discussions similaires

  1. Problème passage tableau dans une fonction
    Par RaphaeL18 dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2015, 17h41
  2. passage d'un tableau d'une fonction
    Par light86 dans le forum Débuter
    Réponses: 5
    Dernier message: 08/05/2013, 11h50
  3. Réponses: 8
    Dernier message: 14/11/2005, 11h27
  4. Retourner un tableau depuis une fonction
    Par obalais dans le forum C++
    Réponses: 2
    Dernier message: 20/10/2005, 16h49
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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