Accueil > Forum > > > > pb prog C: recuperation clavier
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|