Bonjour
Je dois etablir une fonction qui permet de trouver une commande dans un dictionnaire de commande deja charger dans une liste
je vous donne mon code :
Donc comme vous avez pu le voir dans les commentaires du code, quand ma commande est trouvé tout marche très bien, mais quand ma commande n'est pas trouvé, il bug, j'ai meme remarquer qu'il ne sort pas de la boucle d'ou mon printf("ok"); apres la boucle while !
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 int trouverCommandes(TListe pliste, char cmdSaisie[],TProcessus * proc) { int vrai=0; TListe tmp; tmp = pliste; while(((tmp.tete)!=NULL)&&(vrai!=1)) //On parcours toute la liste tant que la commande n'est pas trouvé grace a la variable vrai { if(strcmp((tmp.tete)->information.nomCmd,cmdSaisie)==0) //Si la commande dans la liste est egal à la commande saisie par l'user alors la commande a été trouvé { vrai=1; } else { tmp.tete=tmp.tete->suivant; // sinon on continue a chercher tant que l'adresse de la cellule n'est pas null et que notre commande n'est pas trouvé } } printf("ok"); // c'est ici que ça bug quand quand ma commande n'est pas trouvé if(vrai!=0) // if ma commande a été trouvé alors on affiche la validation { printf("ok"); printf("\n\n -----------------------------------------------"); printf("\n La commande est dans le dictionnaire de donnee\n"); printf(" -----------------------------------------------\n\n"); printf("\nSyntaxe de la commande %s est :",(cmdSaisie)); Color(12,0); printf(" %s\n",((tmp.tete)->information.syntaxe)); Color(15,0); strcpy((*proc).libelle,cmdSaisie); } else //sinon (il y passe jamais) on affiche l'erreur { printf("ok"); printf("\nLa commande n'est pas dans le dictionnaire de donnee \n"); } return vrai ; }
Je ne vois pas en quoi l'algo est faux, j'aimerais savoir pourquoi l'algo serait faux !
Je vous remercie d'avance
Cordialement
Partager