01net    Web


Actuellement en ligne : 173 Utilisateurs dont 7 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Zplay, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> [Résolut]Affichage d'une structure dans une boucle
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
Playerz
  
   
      ?   @     Posté le 22/03/2008 16:02:02  
Voter pour ce message
Bonjour tout le monde

Voila je cherche à afficher dans une boucle For un des éléments d'une structure dont voici le code :

#include <cstdlib>
#include <iostream>

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

//déclaration de la structure
struct panier
{
int CodeAr;
char NomAr[200];
float PrixAr;
};

//initialisation de la structure
struct panier Panier[7]={{0," ",0.00},
{1,"pomme",1.40},
{2,"poire",1.10},
{3,"fraise",1.50},
{4,"cerise",5.20},
{5,"raisin",2.60},
{6,"kiwi",3.55},
};

//création d'un pointeur sur la structure pour afficher le nom de l'article
struct panier *nm;

//on boucle pour afficher le nom de l'article
for (i=1;i<7;i++)
{
nm=&Panier;
cout<<nm->NomAr;
}

Or avec ce code j'obtiens :

p
p
f
c
r
k

au lieu de ce que je recherche :
pomme
poire
fraise
cerise
raisin
kiwi

Comment faire pour ne plus obtenir de la première lettre (je pense que ça vient du pointeur mais je n'arrive pas à trouver où exactement)??

Cordialement.
-->Message édité par Playerz le 22/03/2008 18:21:51<--
esselfe
  Je calcul donc je suis relativ
  :-)
      ?   @     Posté le 23/03/2008 17:01:13  
Voter pour ce message
Moi je ferais un arbre avec la structure.
struct article {
.,.int code;
.,.char *nom;
.,.float prix;
.,.struct article *prev, *next;
} root, *current, *last;

void init_tree (void) {
.,.root.code = 1;
.,.root.nom = malloc (128);
.,.sprintf (root.nom, "premier article");
.,.root.prix = 1.99;
.,.current = &root;
.,.last = current;
}

void destroy_tree (void) {
.,.current = last;
.,.while (current->prev) {
.,..,.if (current->nom) free (current->nom);
.,..,.if (current->prev) current = current->prev;
.,..,.free (current->next);
.,..,.last = current;
.,.}
}

void nouvel_article (int code2, char *nom2, float prix2) {
.,.current = last;
.,.current->next = malloc (sizeof(root));
.,.current->next->prev = current;
.,.current = current->next;
.,.current->next = NULL;
.,.if (code2 == NULL) current->code = current->prev->code + 1;
.,.else current->code = code2;
.,.current->name = malloc (strlen(nom2)+1);
.,.sprintf (current->name, "%s", nom2);
.,.current->prix = prix2;
.,.last = current;
}

void affiche_article (int code2) {
.,.current = &root;
.,.int x;
.,.for (x=0; x< last->code; x++) {
.,..,.if (current->code == code2) {
.,..,..,.printf ("#%d: %s @ %f\n", current->code, current->nom, current->prix);
.,..,..,.break;
.,..,.}
.,..,.if (current->next) current = current->next;
.,..,.else printf ("article #%f non présent\n", code2);
.,.}
}

int main (void) {
.,.init_tree ();
.,.nouvel_article (12874, "Pain panini", 0.75);
.,.destroy_tree ();
.,.init_tree ();
.,.nouvel_article (2, "Pestene, Huile d'olive", 6.99);
.,./* etc etc */
}
/* PS: code non testé, pseudo-code








:hello: :super:
-->Message édité par esselfe le 23/03/2008 17:17:55<--
-------
vive Linux!
<     1       >

01net > Forum de 01net > Programmation et développement > C/C++
> [Résolut]Affichage d'une structure dans une boucle

Aller à :

Page générée en : 3.031s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat - Caractere.net -
Electronique.biz - Mesures.com - Transaction.fr

Devis et Factures
Réalisez facilement en quelques minutes des devis et factures professionnels et analysez votre activité.
Jeux
Nouveauté : Partez dans une aventure épique pour sauver le royaume de Rados !