begin process at 2012 05 29 18:44:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb prog C: recuperation clavier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb prog C: recuperation clavier

mardi 28 février 2006 à 16:21:45 | pb prog C: recuperation clavier

btita

bonjour,
voila, je vous expose mon prob. je developpe (depuis peu) avec Dev C++ sous Windows XP.
je dois faire un projet qui permet de gerer le materiel d'une entreprise. pour cela, il faut faire un menu (à l'aide de la bibliothèque pdcurses) mais j' un prob je n'arrive pas a recuperer le choix tapé au clavier pour ensuite m'en servir! (equivalent de scanf non?)
alors voici une partie de mon code afin que vous compreniez ce que je veux dire car je sais pas si j'ai ete tres claire!! (soyez indulgent svp car c'est mon tout premier code! merci)
merci beaucoup,
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
/* declaration des fonctions*/
void menu_principal();
void menu_gerer_dispositifs();
void menu_gerer_interventions();
void menu_affichage();
void menu_recherche_dispo();
void menu_recherche_intervention();
void menu_quitter();

/* fonctions menu*/
void menu_principal()
{ int c;
  int choix1;
    char rep;
mvprintw (2,20,"***********************");
mvprintw (3,20,"* Outil de GMAO de DM *");
mvprintw (4,20,"***********************");
mvprintw (6,25,"MENU PRINCIPAL");
mvprintw (8,10,"1) Gérer les dispositifs");
mvprintw (9,10,"2) Gérer les interventions");
mvprintw (10,10,"3) Affichage");
mvprintw (11,10,"4) Recherche d'un dispositif a partir d'une caracteristique");
mvprintw (12,10,"5) Recherche d'une intervention a partir d'une caracteristique");
mvprintw (13,10,"6) Pour quitter appuyer sur F1");
mvprintw(14,8,"Entrez le numéro désiré : ",choix1);
refresh();
do
    {
      choix1 = getch();         
switch (choix1)
       {/* gestion des dispo*/
       case 1:
            do{   
                   /*sous-menu 1*/
                   menu_gerer_dispositifs();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);
              break;
       case 2:
            do{
                    /*sous-menu 2*/
                   menu_gerer_interventions();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);
              break;
       case 3:
            do
            {
                   /*sous-menu 3*/
                   menu_affichage();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);
              break;
       case 4:
            do
            {
                
                   menu_recherche_dispo();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);
              break;
       case 5:
            do
            {
                  
                   menu_recherche_intervention();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);
                        break;
       case 6:
            do
            {                 
                   menu_quitter();
                   puts("pour sortir frapper ESC");
                   rep = getch();
              }
              while (rep!=27);    
            break;
       }
       } while (choix1!= KEY_F(1));

}   

void menu_gerer_dispositifs()
{
mvprintw (2,20,"GESTION DES DISPOSITIFS");
mvprintw (6,10,"1.1) Ajouter un nouveau dispositif");
mvprintw (7,10,"1.2) Supprimer un dispositif existant");
mvprintw (8,10,"1.3) Modifier un dispositif existant");
mvprintw (9,10,"1.4) Retour au menu principal");
mvprintw (10,8,"Entrez le numéro désiré : ");
refresh();
}
void menu_gerer_interventions()
{
mvprintw (2,20,"GESTION DES INTERVENTIONS");
mvprintw (6,10,"2.1) Ajouter des interventions");
mvprintw (7,10,"2.2) Supprimer des interventions");
mvprintw (8,10,"2.3) Modifier une intervention existante");
mvprintw (9,10,"2.4) Retour au menu principal");
mvprintw (10,8,"Entrez le numero desire:");
refresh();
}
void menu_affichage()
{
mvprintw (2,20,"AFFICHAGE");
mvprintw (6,10,"3.1) Afficher les interventions d'un dispositif choisi");
mvprintw (7,10,"3.2) Afficher tous les dispositifs devant etre soumis a une intervention dans les n mois suivants");
mvprintw (8,10,"3.3) Afficher tous les dispositifs en retard");
mvprintw (9,10,"3.4) Afficher tous les dispositifs n'ayant pas encore d'interventions planifiees");
mvprintw (10,10,"3.5) Afficher le planning des interventions pour les n mois suivants");
mvprintw (11,10,"3.6) Retour au menu principal");
mvprintw (13,8," Entrez le numero desire:");
refresh();
}
void menu_recherche_dispo()
{
mvprintw (2,20,"RECHERCHER DES DISPOSITIFS");
mvprintw (6,10,"4.1) A partir du code interne");
mvprintw (7,10,"4.2) A partir du code constructeur");
mvprintw (8,10,"4.3) A partir du modele");
mvprintw (9,10,"4.4) A partir de la marque");
mvprintw (10,10,"4.5) A partir d'une designation");
mvprintw (11,10,"4.6) A partir de la classe");
mvprintw (12,10,"4.7) A partir du modele d'intervention");
mvprintw (13,10,"4.8) A partir de la periode de maintenance");
mvprintw (14,10,"4.9) A partir de la date de mise en service");
mvprintw (15,10,"4.10) A partir du niveau de risque");
mvprintw (16,10,"4.11) Retour au menu principal");
mvprintw (17,8," Entrez le numero desire:");
refresh();
}
void menu_recherche_intervention()
{
mvprintw (2,20,"RECHERCHER DES INTERVENTIONS");
mvprintw (6,10,"5.1) A partir du code interne");
mvprintw (7,10,"5.2) A partir de la date de l'intervention");
mvprintw (8,10,"5.3) A partir de l'equipement");
mvprintw (9,10,"5.4) A partir du modele de l'intervention");
mvprintw (10,10,"5.5) A partir du cout");
mvprintw (11,10,"5.6) A partir de l'operateur");
mvprintw (12,10,"5.7) Retour au menu principal");
mvprintw (13,8, " Entrez le numero desire");
refresh();
}

void menu_quitter()
{
 }
                             /**********************/
                             /* FONCTION PRINCIPALE*/
                             /**********************/
int main(int argc, char *argv[])
{
  int choix1;
initscr();
menu_principal();
menu_gerer_dispositifs();
  return 0;
}

mardi 28 février 2006 à 18:02:51 | Re : pb prog C: recuperation clavier

Spoolega

Bonjour
Je ne sais pas si ceci est très correct:
 choix1 = getch();         
switch (choix1)
       {/* gestion des dispo*/
       case 1: ...
       case 2:...
      
En effet, getch() renvoie bien un entier, mais c'est le cose ASCII de la touche.
mardi 28 février 2006 à 18:46:36 | Re : pb prog C: recuperation clavier

rrk275

bah il faut transformer 1 en '1'  2 en '2' ... jusqu'a 0 en '0'
mercredi 1 mars 2006 à 09:05:53 | Re : pb prog C: recuperation clavier

zaibacker

Oui moi j'utilserai bien le getch() il appartient a la bibliotheque <conio.h> et ne peut etre utiliser que sous windows. Le probleme c'est que parfois le buffer ne se vide pas tout de suite et le choix saisie reste le meme apres la fin d'une boucle,donc j'accompagne toujours un getch() d'un fflush(stdin);


Cette discussion est classée dans : menu, partir, void, rep, mvprintw


Répondre à ce message

Sujets en rapport avec ce message

Création d'un menu en langage C [ par kimokim ] Salut les programmeurs!! J'aimerai bien avoir une solution à un problème que j'ai affronté lors de mon évolution dans mon programme en langage C, qui Récupération des octets d'un flux MPEG [ par dayvid75014 ] Bonjour à tous,J'aimerais demander à l'utilisateur de rentrer dans la console le chemin d'un fichier vidéo et après je voudrais récupérer ce flux MPEG Fonctions Imbriquées avec argument string [ par Zakata ] Bonjours,J'esaye de programmer deux classes de menu. L'architecture est la suivantes : Une classe Menuclass Menu{public:    Menu(void);    ~Menu(void) Pb de link avec cout et un char [ par Zakata ] Bonsoir à tous,J'ésaye de programmer une fonction qui affiche une variables de type char sur la console :void Menu::Display(void){    int Cpt;    for( triangle de penrose et classe [ par ichigoZ710 ] Bonjour à toutes et à tous,j'aurais aimé savoir comment commencer le début de mon code en rapport avec les triangles de penrose (un triangle de penros Lecture d'un fichier txt [ par Darklecon ] Chers amis de la troisième lettre de l'alphabet bonjour, J'ai écrit une petite fonction, copy_rep, permettant de copier un répertoire temp vers un tableau/procédure [ par nopnop77 ] Bonjour !Voila j'ai un problème à passer un tableau en paramètre entrée/sortie pour une procédure.Voici un code simplifié:#include using namespace std utilisation DLL [ par Roro8883 ] Bonjour à tous !J'aimerais savoir s'il est possible d'utiliser une DLL à partir d'une autre DLL ?Si oui, faut-il passer obligatoirement par le program sizeof( void* ) / sizeof( int ) sur processeur 64 bit [ par KeniiyK ] Bonsoir,Si quelqu'un a un processeur 64 bit, peut il me dire si l'adressage est sur 32 bits ou sur 64 bits ?Que valent les renvoies de sizeof( int ) e Changer couleur Menu Bar [ par Neo_Fr ] Bonsoir, Est ce possible de changer la couleur d'une menu bar?; si oui comment? Neo_Fr


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales