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 :

Comment gérer la touche echap ?


Sujet :

C

  1. #21
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    de toute façon, comme t'es sous window$, tu peux utiliser getche();
    cette fonction n'a pas besoin de validation. elle lit directement au clavier, donc pas d'erreur liée à la validation par entrée (qui renvoie \n). donc, je pense que si tu mets ça :
    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
    int lire_somme (...) 
    { 
      int touche ; 
      int montant ;  
      /*....*/ 
      touche=getche(); /*c'est ici que ça change*/
      if (touche==27) goto menup ; //le problème : menup est défini dans main 
      else scanf("%d", &montant) ; 
      return montant ; 
    }                                          
     
    int main() 
    { 
      int montant1 ; 
      menup : /*affichage du menu*/ 
      /*...*/ 
      montant1=lire_somme(...) 
      /*...*/ 
      return 0 ; 
    }
    et ça risque de poser un problème avec menup : il est dans une fonction externe ! donc goto risque de ne pas fonctionner... (enfin je crois)
    voilà... si tu veux, tu peux m'envoyer ton source pour que je voie un peu
    getche est aussi dans conio.h et non pas dans conio.c (jamais vu ça moi )
    à+
    ps : sur mon poste, dev-c++ (v4.9.8.1) fonctionne très bien... kan je fais des trucs corrects

  2. #22
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    Mais...ton code il fonctionne ou pas ? parce que je vois toujours le meme problème du label menup non défini dans la fonction lire_somme().

    Sinon, j'aimerai bien te passer le code source, mais là je suis sur mac (y a que lui qui a internet chez moi...) et le code est sur pc...d'autant plus que le G4 à pas de disquettes...ça va pas etre possible

    rq : oui, c'est bien main() et pas maint(), je corrige mon post.

  3. #23
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ben sinon, tu peut me le passer par mail... ou en mp

  4. #24
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Pour le goto, c'est pas bien ce truc !
    Pourquoi tu fais pas une fonction Afficher_menu qui affiche le menu, donc comme ca, quand la personne fait echap, t'appeller la fonction Afficher_Menu et puis voila, ca sera plus simple !

    Nas'

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par fd
    T'as déja essayé d'expliquer le concept de la Programmation Orienté Objet à un enfant de 6 ans ?
    Non, il faut que je le fasse avant de pouvoir poster sur le forum?
    il y a trois sortes de personnes : celles qui savent compter et celles qui ne savent pas compter ...

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    De plus le language C n'est pas ce qu'on pourrait appeler un langage orienté objet. donc peut etre que je peux quand meme poster désolé pour cette parenthése totalement hors sujet et d'aucune utilité pour toi, Adrael.
    il y a trois sortes de personnes : celles qui savent compter et celles qui ne savent pas compter ...

  7. #27
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Je crois qu'il parlait à moi (cf ma signature).
    Non je n'ai jamais essayé ! C'est une citation de A.Einstein ... il n'es tpas obligé de maitriser mais comprendre il peut ...Mais c'est hors sujet ca

    Nas'

  8. #28
    Membre régulier Avatar de Thrystan
    Inscrit en
    Avril 2003
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 346
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par Adrael
    Donc je suis en fait obligé de faire un goto dont le label correspondra à l'affichage du menu.
    Je pense qu'un des meileurs conseils qu'on m'ait donné en programmation c'est de ne jamais utiliser de goto (code spaghetti)...
    Pour que l'utilisateur puisse revenir au menu précédent, j'utiliserai une boucle while :
    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
    int lire_somme (...)
    {
      int montant;
      /*....*/
      touche = getch();
      if(touche != 27)
      {
        scanf("%d", &montant);
        return montant; 
      }
      else return 0;
    }
     
    int main()
    {
      int touche;
      int montant1; 
      do
      { //affichage du menu
        /*...*/
        montant1 = lire_somme(...);
      }while(touche == 27);
      /*...*/
      return 0; 
    }
    J'utilise do...while car le traitement s'effectue au moins une fois. Tu dois par contre déclarer la variable touche dans la fonction main() ou comme variable globale pour qu'elle conserve sa valeur. Je n'ai pas besoin d'utiliser de label : il correspond au do, et cette boucle et bien plus comprehensible qu'un goto (en tout cas pour moi).
    Voila, je pense que ça fonctionne, mais avec ce code je ne peux rien tester.
    Thrystan.

    Participez au projet d'entraide Linux : http://parrains.linux.free.fr

  9. #29
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 47
    Points : 24
    Points
    24
    Par défaut
    Merci pour vos propositions, NaskY et Thrystan je pense qu'avec ça je vais me débrouiller et pouvoir me débarrasser des goto

    il n'es tpas obligé de maitriser mais comprendre il peut
    Tout a fait d'accord !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Gérer le touche Echap
    Par fabrice.s dans le forum C#
    Réponses: 5
    Dernier message: 28/12/2013, 08h33
  2. [AC-2007] Comment simuler la touche Echap
    Par JPJOLY dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/11/2010, 17h13
  3. Comment gérer ma touche entre
    Par solaar dans le forum VBA Access
    Réponses: 0
    Dernier message: 09/07/2010, 16h09
  4. Evenement Onkey : comment gérer la touche control?
    Par Thi0123 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/03/2008, 13h37
  5. Réponses: 1
    Dernier message: 30/12/2006, 10h30

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