Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction d'initialisation

pour des variables personnalisées

    13 février 2008 à 21:45:44

    Bonjour à tous !
    Je voudrais des eclaircisement sur une erreur dansmon code source sur visual C++ (bien que je ne fasse que du C).
    J'apprends à creer des variables personalisées et à creer ds fonctions pour les initiliser.
    Voici ma fonction :
    1. void initialise (Contact *joueur)
    2. {
    3.         joueur->nom = "" ;
    4.         joueur->prenom = "" ;
    5.         joueur->adresse = "" ;
    6.         joueur->age = 0 ;
    7.         joueur->garcon = 0 ;
    8.         joueur->numeroDeTelephone = 0 ;
    9. }


    et aprs compilaion,j'ai quatre erreur :
    main.c(37) : error C2106: '=' : l'opérande gauche doit être une l-value

    J'ai bien creer ma structure, et je fais exactement comme dans le tuto de Matéo alors j'aimeraibien avoir des explication ...

    Je vous remercie d'avance ! bye :D
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2008 à 21:49:58

      donne tout le code car le deboguer dit ligne 37 mais tu n'as pas mit toute les lignes
      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2008 à 21:57:53

        L'erreur se retrouve sur ces trois lignes :

        1. joueur->nom = "" ;
        2. joueur->prenom = "" ;
        3. joueur->adresse = "" ;


        (une erreur par ligne)
        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2008 à 22:00:18

          je sais pas, mais test avec un autre IDE, car visual c'est de la dobe, il m'annoncer des erreurs alors qu'il y en avait pas et avec un autre IDE ça marcher correctement. ;)
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2008 à 22:09:51

            l'erreur viens surement de la declaration de ta structure :)
            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2008 à 22:29:42

              et tu me conseille quoi comme IDE ?
              voici la declaration de ma structure :
              1. typedef struct Contact Contact ;
              2. struct Contact
              3. {
              4.         char nom[100] ;
              5.         char prenom[100] ;
              6.         char adresse[1000] ;
              7.         long age ;
              8.         int garcon ;
              9.         long numeroDeTelephone ;
              10. } ;

              Il ne me semble pas y avoir de problemes à ce niveau-la mais je me trompe peut-etre
              • Partager sur Facebook
              • Partager sur Twitter
                13 février 2008 à 22:45:13

                pour initialiser/modifier des chaines de caractères il faut utiliser strcmp.
                si c'est simplement pour avoir une chaine vide tu fais :
                1. joueur->nom[0] = '\0' ;
                2. joueur->prenom[0] = '\0' ;
                3. joueur->adresse[0] = '\0' ;
                • Partager sur Facebook
                • Partager sur Twitter
                  13 février 2008 à 22:52:19

                  mouais, ca marche pas comme ca non plus (je veux pas une chaine de 0 caractères, je veux juste qu'elle soit vide pour pouvoir ecrire dedans plus tard)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 février 2008 à 22:54:57

                    Citation : Sfaxxy

                    mouais, ca marche pas comme ca non plus (je veux pas une chaine de 0 caractères, je veux juste qu'elle soit vide pour pouvoir ecrire dedans plus tard)


                    A la lumière de ce que tu viens de dire, je te conseille de relire le cours sur les chaines de caractères.

                    Pour te donner une idée,
                    1. joueur->nom[0] = '\0';

                    fait exactement la même chose que
                    1. strcpy (joueur->nom, "");
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 février 2008 à 11:07:04

                      Merci, j'ai compris où était l'erreur (je cherchais trop compliqué, en fait) alors j'ai fait marcher mon programme et sous mes yeux ebahis, il a ...pas marché :'(
                      Il y a plein de trucs qui marche pas : il arrete le programme et met un message d'erreur quand je demande à l'utilisateur d'entrer son age ,par exemple, il ne retient que le premier mot dans la variable quand je demande à l'utilisateur son adresse, et plein d'autre trucs encore. Vous pouvez m'aider ??
                      Vicile code de mon carnet d'adresse (inutile car je ne e sert pas ecore des fichiers ^^) :
                      main.c
                      1. #include <stdio.h>
                      2. #include <stdlib.h>
                      3. #include "main.h"
                      4. void initialise (Contact *joueur) ;
                      5. int main (int argc , char *argv[])
                      6. {
                      7.         Contact joueur ;
                      8.         initialise(&joueur) ;
                      9.         //on demande des renseignements sur le joueur
                      10.         printf ("Quel est votre nom ? ") ;
                      11.         scanf ("%s" , joueur.nom) ;
                      12.         printf ("Et votre prenom ? ") ;
                      13.         scanf ("%s" , joueur.prenom) ;
                      14.         printf ("Quel age avez-vous ? ") ;
                      15.         scanf ("%ld" , joueur.age) ;
                      16.         printf ("A quel adresse vivez-vous ? ") ;
                      17.         scanf ("%s" , joueur.adresse) ;
                      18.         printf ("Quel est votre numero de telephone ? ") ;
                      19.         scanf ("%ld" , joueur.numeroDeTelephone);
                      20.         //on affiche les renseignements recupere sur le joueur
                      21.         printf ("Vous vous appelez %s %s, " , joueur.prenom , joueur.nom) ;
                      22.         printf ("vous habitez à %s et avez %ld ans.\n " , joueur.adresse , joueur.age) ;
                      23.         printf ("De plus, votre numero de telephone est le : %ld\n" , joueur.numeroDeTelephone);
                      24.         system ("PAUSE") ;
                      25.         return '0';
                      26. }
                      27. void initialise (Contact *joueur)
                      28. {
                      29.         joueur->nom[100] = '\0' ;
                      30.         joueur->prenom[100] = '\0' ;
                      31.         joueur->adresse[1000] = '\0' ;
                      32.         joueur->age = 0 ;
                      33.         joueur->garcon = 0 ;
                      34.         joueur->numeroDeTelephone = 0 ;
                      35. }

                      main.h
                      1. #ifndef DEF_MAIN
                      2. #define DEF_MAIN
                      3. typedef struct Contact Contact ;
                      4. struct Contact
                      5. {
                      6.         char nom[100] ;
                      7.         char prenom[100] ;
                      8.         char adresse[1000] ;
                      9.         long age ;
                      10.         int garcon ;
                      11.         double numeroDeTelephone ;
                      12. } ;
                      13. #endif
                      • Partager sur Facebook
                      • Partager sur Twitter

                      fonction d'initialisation

                      × 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