jujuco1996 | Voilà mon problème : je dois créer une liste chainée pour contenir des articles (sur une facture). Je pense avoir fait les bonnes fonctions mais mon encodage rencontre des problèmes : lorsque j'encode (dans la fonction EncoderArticle) c'est bien encodé correctement (le printf me renvoie le bon string) mais quand je l'affiche juste après ma fonction le printf renvoie quelque chose comme ça : (Gx (et x change régulièrement). Si quelqu'un a une idée pour régler leproblème, je vous en serais reconnaissante.
Code :
- void EncoderArticle(article Produit)
- {
- char nom[51];
- printf ("\nVeuillez entrer le nom de l'article : " );
- fflush(stdin);
- scanf("%s", nom);
- printf("%s", nom);
- system("pause" );
- Produit.Designation = (char*) malloc (sizeof(nom)+1);
- strcpy(&(*Produit.Designation),nom);
- printf ("\nVeuillez entrer le prix hors TVA de l'article : " );
- fflush(stdin);
- scanf ("%f", &(Produit.PrixHTVA));
- printf ("\nVeuillez entrer la quantite desiree : " );
- fflush(stdin);
- scanf ("%d", &(Produit.Quantite));
- printf("encodage : %s\n", Produit.Designation);
- system("pause" );
- }
- void InsererElementListe(liste **ListeProduits)
- {
- int trouve = 1;
- int i = 1;
- liste *parcours = NULL;
- liste *inserer = NULL;
- liste *precedent = NULL;
- parcours = *ListeProduits;
- inserer = (liste*) malloc(sizeof(liste));
- EncoderArticle(inserer->Donnees);
- printf("parcours %s\n", (parcours->Donnees).Designation);
- system("pause" );
- printf("Encoder OK\n" );
- printf("inserer : %s\n", (inserer->Donnees).Designation);
- system("pause" );
- do
- {
- printf("condition boucle OK\n" );
- printf("%s, %s, %d\n", ((inserer->Donnees).Designation), ((parcours->Donnees).Designation), i++);
- system("pause" );
- if (ComparerProduit(((inserer->Donnees).Designation), ((parcours->Donnees).Designation)) < 0)
- {printf("Comparer OK" );
- system("pause" );
- trouve = 0;}
- else
- {
- printf("else" );
- precedent = parcours;
- parcours = parcours->Suite;
- }
- }
- while(parcours != NULL && !trouve);
- inserer->Suite = parcours;
- printf("inserer OK" );
- system("pause" );
- if (precedent == NULL)
- *ListeProduits = inserer;
- else
- precedent->Suite = inserer;
- }
|
P.S.: les printf me servent pour le debug... |