Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créez vos propres variables !

(exercice tutorial)

Sujet résolu
    31 août 2007 à 22:31:25

    Bonjour.
    J'aurai besoin d'aide s'il vous plait.
    Il s'agit d'un exercice de la partie 2 chapitre Créez vos propres variables !

    le but : créer un répertoire contenant des informations (nom,prenom) sur des joueurs.

    voici le code du main.c

    <code type="c">

    #include <stdio.h>
    #include <stdlib.h>
    #include "struct.h"


    int main(int argc, char *argv[])
    {
    double i = 0;

    struct personne joueurs[2];

    for ( i = 0 ; i < 2 ; i++)
    {
    printf( "quel est votre nom?" );

    scanf( "%s" , joueurs.nom);

    printf( "Votre prénom ?" );

    scanf( "%s" , joueurs.prenom);
    }

    printf( " nom : %s\n prenom : %s\n " , joueurs.nom, joueurs.prenom);

    system("PAUSE");

    return 0;

    }

    et le code du struct.h :
    <code type="c">

    struct personne
    {
    char nom[100];
    char prenom[100];

    };

    le message d'erreur est le suivant :

    request for member `nom' in something not a structure or union
    je ne comprend pas ce qui ne va pas.
    merci d'avance! ;)

    • Partager sur Facebook
    • Partager sur Twitter
      31 août 2007 à 22:39:33

      Le message qui suit est une réponse automatique activée par un modérateur.
      Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


      Merci d'utiliser les balises de code


      Bonjour,

      Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
      Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises <code > et </code > ?

      Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

      Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :

      Citation

      int main(int argc, char *argv[])
      {
      long choixOperation;

      printf("Choisissez l'operation a effectuer");
      /* etc. */
      }



      Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :

      int main(int argc, char *argv[])
      {
          long choixOperation;

          printf("Choisissez l'operation a effectuer");
          /* etc. */
      }


      C'est plus clair n'est-ce pas ? :)
      N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.

      Plus d'informations à ce sujet


      Merci de votre compréhension :)
      Les modérateurs.
      • Partager sur Facebook
      • Partager sur Twitter
        31 août 2007 à 22:40:53

        ton problème vient du fait qu'il faut faire :
        1. joueurs[i].nom

        alors que toi tu fais :
        1. joueurs.nom


        edit : bien vu Imghs
        • Partager sur Facebook
        • Partager sur Twitter
          31 août 2007 à 23:28:31

          (Mauvais forum)
          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            1 septembre 2007 à 0:11:50

            merci pour avoir répondu aussi rapidement.

            mais apres cette modification il persiste l'erreur :

            array subscript is not an integer a la ligne 15


            1. #include <stdio.h>
            2. #include <stdlib.h>
            3. #include "struct.h"
            4. int main(int argc, char *argv[])
            5. {
            6.     double i = 0;
            7.   struct personne joueurs[2];
            8.   for ( i = 0 ; i < 2 ; i++)
            9.   {
            10.       printf("quel est votre nom?");
            11.       scanf("%s", joueurs[i].nom);
            12.       printf("Votre prénom ?");
            13.       scanf("%s", joueurs[i].prenom);  
            14.       }
            15. printf(" nom : %s\n prenom : %s\n ", joueurs.nom, joueurs.prenom);
            16.   system("PAUSE");     
            17.   return 0;
            18. }
            • Partager sur Facebook
            • Partager sur Twitter
              1 septembre 2007 à 1:28:56

              Citation : Parrain


              array subscript is not an integer a la ligne 15

              1. double i = 0;
              2.   struct personne joueurs[2];
              3. <...>
              4.       scanf("%s", joueurs[i].nom);
              5. }

              Ben oui, il te dit que "l'indice du tableau n'est pas un entier". Pourquoi avoir définir i de type double ? Faut être un peu tordu, non ? un int devrait suffire, tu ne crois pas ? Surtout pour varier de 0 à 1...

              En fait, un indice de tableau doit obligatoirement être un entier.
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                1 septembre 2007 à 12:23:35

                Oui c'est vrai tu as raison ;)
                mea culpa.
                Mon programme fonctionne :D
                Grand merci a tous!
                • Partager sur Facebook
                • Partager sur Twitter

                Créez vos propres variables !

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown