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 :

[Debutante] Probleme d'arguments d'une fonction d'une structure


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut [Debutante] Probleme d'arguments d'une fonction d'une structure
    Bonjour,
    dans mon programme je commence par définir une structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /*définition d'une structure a quatre parametres*/
    struct valeurs
    {
     
        float beta;
        float i;
        float H;
        float q;
     
    };
    Ensuite je souhaite créer une fonction ENTRYDATASLOPE qui permettra a l'utilisateur de rentrer les données utilisées, pour faire tourner le programme, dans cette structure.
    Mon problème est que je ne sais pas comment déclarer ma fonction : de quoi sera-t-elle fonction, que dois-je prévoir en sortie ?
    Je pensais faire un truc du genre


    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
    /*Définition de la fonction qui rentre les données choisies par l'utilisateur dans la structure*/
    valeurs ENTRYDATASLOPE (void)
    {
        struct valeurs donnees;
     
         /*Input values*/
        printf("Enter q value (kN/m2)\n");
        scanf("%f",&donnees.q);
     
        printf("Enter H value (m)\n");
        scanf("%f",&donnees.H);
     
        printf("Enter beta value (degrees)\n");
        scanf("%f",&donnees.beta);
     
        printf("Enter i value (degrees)\n");
        scanf("%f",&donnees.i);
     
    }
    Puis l'appeler dans le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main
    {
    /*appel de la fonction pour entrer les valeurs choisies par l'utilisateur dans la structure*/
    ENTRYDATASLOPE();
         printf("H=%f\n",donnees.H);/*utilisé pour vérification que la fonction marche*/
    }
    Le problème c'est que ce dernier printf ne me renvoie rien .... et quand je dis float ENTRYDATASLOPE (void) il me sort H=0 quelle que soit la valeur que je rentre ...

    Merci de votre aide !!

  2. #2
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Salut,
    tu as essayé en déclarant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct valeurs donnees;
    en global ?

    Comme c'est programmé la, je trouve meme bizarre que ton compilateur ne te balance pas un message d'erreur comme quoi il ne connait pas donnees dans ton main().

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    ooooooops
    j'ai mal recopié sur le forum mais c'est bon dans mon programme : il faut bien lire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main
    {
     struct valeurs donnees;
    /*appel de la fonction pour entrer les valeurs choisies par l'utilisateur dans la structure*/
    ENTRYDATASLOPE();
         printf("H=%f\n",donnees.H);/*utilisé pour vérification que la fonction marche*/
    }
    Donc le probleme n'est pas la ...

  4. #4
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut
    Bonjour,

    Essaie un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main 
    {
      struct valeurs donnees; 
      donnees =  ENTRYDATASLOPE(); 
      printf("H=%f\n",donnees.H);
    }
    Dans ce cas, l'objet de type 'valeurs' renvoyé par ta fonction ENTRYDATASLOPE() sera copié dans l'objet 'donnees' de ton main().
    Dans ce que tu avais fait tu n'attribuais aucune valeur à l'objet 'donnees' du main()

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    Mais mon probleme reste surtout que je ne sais pas comment déclarer ma fonction et quel doit etre son en-tete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    valeurs ENTRYDATASLOPE (void)
    {
    expression de ma fonction
    }
    ne fonctionne pas .....

  6. #6
    Membre averti
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    32
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 32
    Par défaut
    J'ai trouvé !!!

    Il faut déclarer la fonction comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct valeurs ENTRYDATASLOPE (void);
    L'appeler comme ça dans le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main 
    {
      struct valeurs donnees; 
      donnees =  ENTRYDATASLOPE(); 
     
    }
    Et la définir comme ça :

    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
    struct valeurs ENTRYDATASLOPE (void)
    {
        struct valeurs donnees;
     
         /*Input values*/
        printf("Enter q value (kN/m2)\n");
        scanf("%f",&donnees.q);
     
        printf("Enter H value (m)\n");
        scanf("%f",&donnees.H);
     
        printf("Enter beta value (degrees)\n");
        scanf("%f",&donnees.beta);
     
        printf("Enter i value (degrees)\n");
        scanf("%f",&donnees.i);
     
    }
    Merci de vos aides et pour votre temps !

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. [PHP-JS] une fonction dans une fonction
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 25/06/2006, 19h14
  3. Réponses: 3
    Dernier message: 29/04/2006, 13h02
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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