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 :

bibliothéque avec structures


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Par défaut bibliothéque avec structures
    slt tt l monde.en fait je suis entrain de réaliser un programme qui consiste a organiser des livre livres d'un biblio.c a d qu'on fait ajouter un livre avec son auteur et son prix..
    mais jé rencontré quelq problemes lorsde la compilation


    voici le code
    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
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    int n;
    void remplir(struct bibl*   ,int );
    void afficher(struct bibl*  ,int );
    /*void rechercher(
    void afficherauteur(*/
     
     
     
    struct bibl
    {char titre[50];
    char auteur[50];
    int prix;
    };
     
    struct bibl* t[50];
    main()
    {
     
     
    printf("entrer le nombre de livres:");
    scanf("%d",&n);
    void remplir(bibl* t,int n);
    void afficher(bibl* t,int n);
    /*rechercher(struct bibl,n)
    afficherauteur(struct bibl,n)*/
    getch();
    }
     
    void remlpir(struct bibl* t[50],int n)
    {int i;
    for(i=0;i<n;i++)
          {
                    printf("entrer le titre du livre");
                    scanf("%s",&t[i].titre);
                    printf("enter le nom de l'auteur du livre");
                    scanf("%s",&t[i].auteur);
                    printf("entrer le prix du livre");
                    scanf("%d",&t[i].prix);
          }
    }
     
    void afficher(struct bibl* t[50],int n)
    { int i;
    for(i=0;i<n;i++)
          {
                    printf("t[i].titre");
          }
    }

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Ca serait pas mal que tu indiques les erreurs de compilation...
    Pourrais tu faire attention à l'ortho aussi?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Par défaut
    l'erreur est dans cette ligne:
    scanf("%s",&t[i].titre);

    é le compilateur m'indique l'erreur suivante:

    37 C:\Users\Admin\Documents\bibliotheque.cpp `titre' has not been declared




    alors q titre est bien déclaré!!!

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Pourquoi tu déclares un tableau de pointeurs sur struct bibl? Et puis s'il te plait, pas de variables globales.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include<stdio.h>
    #include<conio.h> /* Beurk!!! */
    #include<string.h>
    int n; /* Enlève moi-vite cette variable globale avant que je te colle une contravention! Place la dans ton main*/
    void remplir(struct bibl *, int);
    void afficher(struct bibl *, int);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void remplir(struct bibl* t[50],int n)
    {
        ...
    }
    Regarde ta déclaration plus haut et regarde ce que tu écris ici .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remplir(struct bibl * t, int n)
    Sinon, si tu optes pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remplir(struct bibl t[50])
    Tu n'as plus besoin de passer le nombre d'éléments du tableau, puisqu'elle est déjà connue.

    Corrige aussi ta fonction afficher.

    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%s", t[i].titre);
    Y a trop d'erreur dans ta fonction principale que j'pourrais pas toutes les commenter, mais voici à peu près ce que l'on devrait avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int main()
    {
        struct bibl t[50];
        int n;
     
        printf("entrer le nombre de livres : ");
        scanf("%d", &n);
     
        remplir(t, n);
        afficher(t, n);
     
        return 0;
    }

  5. #5
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    remlpir ou remplir, il faut choisir. Personnellement je choisis le mot qui veut dire quelquechose.

    Comme quoi l'orthographe aide à coder...

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Melem Voir le message
    Sinon, si tu optes pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remlpir(struct bibl t[50])
    Tu n'as plus besoin de passer le nombre d'éléments du tableau, puisqu'elle est déjà connue.
    J'en suis beaucoup moins sûr que toi... En fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remlpir(struct bibl t[50]);
    est strictement équivalent à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remlpir(struct bibl t[]);
    qui est strictement équivalent à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void remlpir(struct bibl *t);
    Il n'est pas possible de récupérer la taille du tableau depuis l'intérieur de la fonction, d'où la nécessité de passer la taille de ce dernier en argument.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ca alors. Je l'ai toujours su pour t[] et *t, en argument d'une fonction, mais pas même quand on spécifie la taille. C'est un peu bête quand même ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/03/2007, 02h38
  2. [PHP-JS] Problème affichage avec structure if
    Par kitty2006 dans le forum Langage
    Réponses: 31
    Dernier message: 07/09/2006, 18h01
  3. Thread Synchronisation avec structure FIFO ??
    Par vincedom dans le forum MFC
    Réponses: 5
    Dernier message: 30/03/2006, 06h00
  4. C++ - Probleme avec structure et template
    Par vdumont dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2006, 15h32
  5. Réponses: 12
    Dernier message: 26/04/2004, 08h32

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