Pb de printf

Signaler
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Bonjour,

Voila, j'ai un ptit pb dans la fonction ki suit : si je place le printf ki suit getch() en commentaire, le code ne fonctionne plus, au contraire, si je le mets, le code fonctionne...Je comprends vraiment pas pkoi !!
Si kelkun pouvait m'aider, je vous remercie d'avance...
Et une autre ptite kestion en passant : je suis obligé d'utiliser getch() (de conio.h), mais jmré utiliser getc ou scanf mais ca marche pa !!
Voila, merci d'avance..

int *Touche(int iNbre_Time, int iMax)
{
int iTouche = 0;
int i;

iChoice = (int *)malloc(iNbre_Time * sizeof(int));
//printf("Time = %d\n", iNbre_Time);
for (i = 0; i < iNbre_Time; ++i){
DrawNumber(450 + (i * 30), 400, 0, 15);
do {
fflush(stdin);
iTouche = getch();
printf("fuck%d\n", i);
switch (iTouche){
case 72 : //Fleche haut
if (iChoice[i] < iMax) ++iChoice[i];
else if (iChoice[i] == iMax) iChoice[i] = 0;
break;
case 80 : //Fleche bas
if (iChoice[i] == 0) iChoice[i] = iMax;
else if (iChoice[i] > 0) --iChoice[i];
break;
}
//Et modifier le DE en fonction des "desirs" du joueur
DrawNumber(450 + (i * 30), 400, iChoice[i], 15);
}while (iTouche != 13); //Entrée
}

return iChoice;
}

Bonne prog all !

alhexman

2 réponses

Messages postés
15
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
15 décembre 2005

Ta variable i en sortie de ta première boucle for vaut iNbre_Time. Elle n'est pas modifiée par la suite donc je m'interroge sur son intérêt, si ce n'est qu'elle permet d'écrire moins de code tout en rendant la compréhension plus difficile.

scanf récupère des caractères venant du flot d'entrée par défaut (puis les interprète éventuellement). Il ne peut donc en aucun cas intercepter des pressions de flèches de direction.
D'autre part, la touche Entrée (de même que espace, tab, et autres) marque un séparateur de champ du point de vue de scanf, donc n'est pas reçue en tant que caractère. Donc il est normal que tu ne puisses utiliser scanf pour ton exemple.

Pour le reste, tu pourrais être plus explicite que "le code ne fonctionne pas"?
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Je te remecie pour ta reponse, mais j'ai trouvé le pb : j'ai du rajouter un fflush(stdout) a l'entrée de la boucle while.

Merci encore pour la reponse, et pour ce ki est de la variable i, elle sert enormément...regarde bien !

Bonne prog

Alhexman