problème boucle while - C++ - Programmation
Marsh Posté le 18-04-2009 à 11:41:50
id ne semble pas changer à chaque tour de boucle
où est déclaré datas ?
Tu n'est pas obligé de caster datas pour le comparer à NULL.
Marsh Posté le 18-04-2009 à 12:26:36
jesus_christ a écrit : id ne semble pas changer à chaque tour de boucle |
voici le code complet de la fonction qui intègre ma boucle while
Code :
|
pour expliquer un peu plus mon but recherché voici ce que je veut faire
j'ai un tableau de *char, par exemple :
static char * widgets[] = {
//id;app;window;type;label;x;y;w;h;fColor;bColor;orientation;action;defaultValue
"1;0;1;5;essai1;10;10;100;40;000000;000000;0;1=20; ",
"2;0;1;5;essai2;10;10;100;40;000000;000000;0;1=20; "
};
Je veux renvoyer a ma fonction (KrWindow::_getWidgets) toutes les lignes ou la troisième valeur (window) est egale à 1 par exemple (parametre id de ma fonction).
je sais pas si j'ai été très clair
Marsh Posté le 18-04-2009 à 12:57:44
this->getId() change-t-il à chaque tour de boucle ?
Ta condition d'arret est bonne, mais j'ai surtout l'impression que tu ne déplaces pas ton indice, donc à tour ta boucle fait la même chose, d'où la boucle infinie.
Marsh Posté le 18-04-2009 à 13:03:14
non id ne varie pas, puisque je veux recuperer toutes les lignes ou window (qui correspond a mon parametre windowId) est egal à 1 par exemple.
Marsh Posté le 18-04-2009 à 16:12:11
Code :
|
voila une solution, ça corrige juste ton bug. Mais je n'aime pas le style de la fonction, l'usage de la static pour wgCount est difficile à comprendre et très peu souple. Le coup de la static qui est remise à 0 une fois que la boucle est terminée, j'avais jamais vu...
Marsh Posté le 18-04-2009 à 16:47:54
Ok merci ca fonctionne
L'utilisation de wgCount en statique c'est d'avoir un index statique qui parcourt mon tableau afin de ne pas recommencer sa lecture depuis le debut a chaque appel de la fonction. Sinon la fonction me renverra a chaque fois la première ligne du tableau...
Si t'as une autre idée, je suis preneur.
edit : j'ai parlé trop vite, maintenant je n'ai plus de boucle infinie mais la fonction me retourne toujours qu'une seule ligne
Marsh Posté le 18-04-2009 à 20:55:16
peut-être parce qu'il n'y a qu'une seule ligne de bonne.
je te propose :
Code :
|
Par contre le cast de datas de char** vers char*, il me semble douteux...
Marsh Posté le 18-04-2009 à 09:14:32
Bonjour, je suis débutant en c++ et j'ai un petit problème avec une boucle while, voici le code
Le problème, c'est que je voudrais sortir de la boucle while quand la fonction getWidgets retourne un pointeur null mais ca ne fonctionne pas, j'ai toujours une boucle infinie.
Message édité par t0t0l le 18-04-2009 à 17:12:16