A voir également:
- Problème de programmation
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Programmation - Guide
- Application de programmation - Guide
- Logiciel programmation clé voiture gratuit - Forum Programmation
- Programmation logo tortue télécharger - Télécharger - Études & Formations
2 réponses
Bonjour,
C'est la fonction getchar() qui est en cause.
Quand tu appelles getchar(), le prog attends que tu entres un caractère suivi de 'Enter'.
Ce qui fait 2 caractères par exemple '1' et '\n', le menu est affiché une fois pour '1' et une autre fois pour '\n'.
solution: tester si le caractère est '\n' alors ne pas afficher le menu.
char c;
c='\0';
do
{
if (c!='\n') {
puts(" ==========================================================================");
puts("\t\n GrpMLPCG-2009");
puts("\t\t\t\t ROBOTLING\n\n\n");
puts("\t\t\t(Activités possibles)\n\n");
if(gTabMenu[2]==0)
puts("\t\t\t-1)- DIALOGUE ");
if(gTabMenu[0]==0)
puts("\t\t\t-2)- ACQUISITION");
if(gTabMenu[3]==0)
puts("\t\t\t-3)- HEURISTIQUE");
if(gTabMenu[1]==0)
puts("\t\t\t-4)- CONSULTATION");
if(gTabMenu[4]==0)
puts("\t\t\t-5)- INTERACTION");
puts("\t\t\t-Q)- QUITTER");
}
Salut.
C'est la fonction getchar() qui est en cause.
Quand tu appelles getchar(), le prog attends que tu entres un caractère suivi de 'Enter'.
Ce qui fait 2 caractères par exemple '1' et '\n', le menu est affiché une fois pour '1' et une autre fois pour '\n'.
solution: tester si le caractère est '\n' alors ne pas afficher le menu.
char c;
c='\0';
do
{
if (c!='\n') {
puts(" ==========================================================================");
puts("\t\n GrpMLPCG-2009");
puts("\t\t\t\t ROBOTLING\n\n\n");
puts("\t\t\t(Activités possibles)\n\n");
if(gTabMenu[2]==0)
puts("\t\t\t-1)- DIALOGUE ");
if(gTabMenu[0]==0)
puts("\t\t\t-2)- ACQUISITION");
if(gTabMenu[3]==0)
puts("\t\t\t-3)- HEURISTIQUE");
if(gTabMenu[1]==0)
puts("\t\t\t-4)- CONSULTATION");
if(gTabMenu[4]==0)
puts("\t\t\t-5)- INTERACTION");
puts("\t\t\t-Q)- QUITTER");
}
Salut.
Pacorabanix
Messages postés
3245
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
658
14 déc. 2009 à 23:12
14 déc. 2009 à 23:12
bonjour, prière d'utiliser si possible les balises code pour les gros morceaux... (le bouton à droite de gras italique souligné)
je dois dire sinon que j'ai beaucoup de mal à comprendre votre code, ce que vous voulez faire / pensez faire. Cette histoire de tableau mis à zéro me trouble pas mal. Et sinon le tableau est utilisé avant sans être initialisé, ce qui est plutôt dangereux comme pratique...
je dois dire sinon que j'ai beaucoup de mal à comprendre votre code, ce que vous voulez faire / pensez faire. Cette histoire de tableau mis à zéro me trouble pas mal. Et sinon le tableau est utilisé avant sans être initialisé, ce qui est plutôt dangereux comme pratique...
15 déc. 2009 à 21:13
Merci de ta réponse, j'ai effectivement adopté une solution du même type, sympa de ta part !