Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2012
    Messages : 25
    Points : 12
    Points
    12

    Par défaut structure de données

    Code :
    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
     #include <stdlib.h>
    #include <stdio.h>
    #include "livre.h"
    void saisielivre(livre *l)
    {
        printf("donner le titre de livre \n");
        fflush(stdin);
        scanf("%s",l->titre);
        printf("donner le nom de l'auteur \n");
        fflush(stdin);
        scanf("%s",l->auteur);
        printf("donner l'etat du livre \n ");
        scanf("%d",&l->etat);
        if ((l.etat) == 2)
        {
            printf(" donner le nom de la personne \n ");
            scanf("%s",l->nom);
            printf(" donner le prenom de la personne \n");
            scanf("%s",l->prenom);
        }
    }
    void afficherlivre(livre l)
    {
    
        printf("les proprietes de livre est : \n titre= %s \n auteur= %s \n etat= %d \n",l.titre,l.auteur,l.etat);
    
        if (l.etat==2)
        {
            printf(" le nom de la personne est : %s \n le prenom est %s \n ",l.nom,l.prenom);
        }
    }
    le compilateur m'indique une faute à la ligne rouge (comparaison avec if) : request for membre etat in something not structure or union

    c'est quoi la faute ????

  2. #2
    Responsable Modération
    Avatar de diogene
    Homme Profil pro Patrick Gonord
    Enseignant Chercheur
    Inscrit en
    juin 2005
    Messages
    5 664
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrick Gonord
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2005
    Messages : 5 664
    Points : 12 539
    Points
    12 539

    Par défaut

    l n'est pas une structure mais un pointeur sur structure d'où :
    ou ce qui est équivalent et avec une syntaxe plus facile et habituelle :
    Remarque complémentaire : ne pas utiliser fflush() sur des flux entrants comme stdin. Tu trouveras des informations sur le sujet dans la FAQ :
    "Pourquoi ne faut-il pas utiliser fflush(stdin) pour vider le buffer clavier ?" et aussi "A quoi sert la fonction fflush ?" et "Comment vider le buffer clavier ?"
    Publication : Concepts en C

    Mon avatar : Glenn Gould

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

  3. #3
    Membre chevronné
    Avatar de Kirilenko
    Homme Profil pro Lucas Pesenti
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Nom : Homme Lucas Pesenti
    Âge : 17
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2011
    Messages : 234
    Points : 762
    Points
    762

    Par défaut

    Bonjour,

    livre est un pointeur, il faut donc déréférencer ce pointeur pour accéder aux membres de la structure.

    Cependant, étant donné qu'il s'agit d'une expression qui est souvent répétée par les programmeurs C, on utilise souvent un raccourci, en la matière de l'opérateur -> [§ 6.5.2.3] :

    Bonne journée !

    ÉDIT : Uhm, une minute trop tard.

    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •