Pb de printf

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 13 avril 2004 à 12:48
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 14 avril 2004 à 18:27
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

ensiame Messages postés 15 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 15 décembre 2005
14 avril 2004 à 13:23
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"?
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
14 avril 2004 à 18:27
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
0
Rejoignez-nous