IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

probleme dans mon menu


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut probleme dans mon menu
    Bonjour a tous ,

    je fais mon projet de fin d'année et je doit faire un petit programme avec un menu . cela fais un mois que le menu marche bien , mais a l'ajout d'une fonction , quelques parties de mon programme ont eu des soucis .J'ai reglé la plus part d'entre eux mais je suis bloqué a celui-ci : Le menu qui est composé de 3 element en affiche maintenant 4 et le dernier est un ; , un carré ou juste vide . je n comprend pas d'ou cela viens .
    voici mon code pour le menu :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    int menu ( char tab[][20]){
    int i,max=3,pos=15,m=20,anci,touche;
     
    clrscr() ; textcolor(GREEN);
     
    _setcursortype(_NOCURSOR);
     
     
     
    for (i=0;i<max;i++){
    		gotoxy(m+1,pos+i*2);
    		cprintf("%s\n",tab[i]);
                       }
     
    do   {
     
     
     	 textcolor(10);// fait en sorte que le texte selectionner soit en vert claire 
     
     
      //petit cadre ----------------------------------------------------------------------------------------------------------------------------------------------------
     
     
    	gotoxy(m,pos+i*2-1) ;printf("%c",201);
     
    	for(int k=0;k<10;k++)
    	{
    		printf("%c",205);
    	}
     
    	printf("%c",187);
     
     	gotoxy(m,pos+i*2);printf("%c",186);
     
        gotoxy(m+11,pos+i*2);printf("%c",186);
     
        gotoxy(m,pos+i*2+1);printf("%c",200);
     
     
    	for(int k=0;k<10;k++)
    		{
    			printf("%c",205);
    		}
    	printf("%c",188);
     
    // petit cadre -------------------------------------------------------------------------------------------------------------------------------------------------------
     
        gotoxy(m+1,pos+i*2);
     
        highvideo();cprintf("%s",tab[i]);
     
        normvideo();
     
        touche=getch();
     
    	if(touche==224)
      		{
    		    textcolor(GREEN);
     
             	touche=getch();
     
            	anci=i;
     
           		if(touche==KEYDOWN)i=++i%max;
     
         		if(touche==KEYUP)i=(--i+max)%max;
     
           		gotoxy(m+1,pos+anci*2);
     
         		 cprintf("%s",tab[anci]);
     
       		 }
     
     
    	gotoxy(m,pos+anci*2-1) ;printf(" ");
     
    	for(int k=0;k<10;k++)
    		{
    		printf(" ");
    		}
     
    	printf(" ");
     
    	gotoxy(m,pos+anci*2);printf(" ");
     
    	gotoxy(m+11,pos+anci*2);printf(" ");
     
    	gotoxy(m,pos+anci*2+1);printf(" ");
     
    	for(int k=0;k<10;k++)
    		{
    		printf(" ");
    		}
    	printf(" ");
     
    	Beep(900,70);
     
    	}while(touche != 13);
     
     
    return(i);  
    }
    pouvez vous m'aider ?
    Images attachées Images attachées  

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut

    Ceci est mauvais:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(touche==KEYDOWN)i=++i%max;
    if(touche==KEYUP)i=(--i+max)%max;
    Comportement indéterminé, tu modifies deux fois la variable (une fois avec le =, une avec le ++ ou --) dans la même instruction sans point de séquencement entre les deux.

    Ceci devrait corriger:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(touche==KEYDOWN) i = (i+1) % max;
    if(touche==KEYUP) i = (i-1+max)%max;

    Edit: De plus, tu devrais faire plus de fonctions: Ton "petit cadre" distrait du reste du code, il devrait être dans une fonction à part.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour cette explication et de m'avoir aidé et conseillé un peu mais ce n'est pas ca le probleme ( j'ai essaié ca n'a pas changé le cadre supplémentaire reste la .
    ce qui est bizzare . car avant il marchait sans soucis .

    et quand je le lance , de base , le premier cadre est le dernier ( qui ne devrais pas etre la ) ce qui est bizzare non ? ca ne devrai pas etre le premier ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    J'ai trouvé le probleme , en regardant j'ai ajouté un "i=0" avant le do while , et ca marche . donc le probleme est resolut . merci pour ton aide quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'espacement dans mon menu deroulant sous IE
    Par gaya102 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 02/04/2009, 16h43
  2. probleme dans mon script
    Par bigoter dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 15h19
  3. probleme dans mon programme
    Par phpaide dans le forum Langage
    Réponses: 8
    Dernier message: 05/06/2006, 12h57
  4. [CSS] Probleme avec mon menu css
    Par otagun dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 13/05/2006, 14h37
  5. [VBA-E]Probleme dans mon code ??? merci de votre aide
    Par gregantibes dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2006, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo