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 :

programmer les bouton de clavier


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 32
    Points
    32
    Par défaut programmer les bouton de clavier
    salut je fait une agenda et je veut limité les bouton de calvier pour cela j'ai fait ce programme
    QU : je veut ajouté les bouton de direction
    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
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<ctype.h>
    #include<string.h>
    #define BS 8
    #define CR 13
     
    int GetDigit()
    {
    	int c;
    	do
    	{
    		c=getch();
    	}
    	while ((!isdigit(c)) && (c!=CR) && (c!=BS));
     
    	return c;
    }
    void GetTel(char *t)
    {
    	int c;
    	int count=0;
    	char buffer[15];
    	char *p;
    	p=buffer;
    	do{
    		c=GetDigit();
    		switch(c)
    		{
    		case BS :
    			if(p!=buffer)
    			{
    				printf("\b \b");
    				count--;
    				p--;
    			}break;
    		case CR :
    			if(count==9)
    			{
    				*p='\0';
    				strcpy(t,buffer);
    				printf("\n");
    			}break;
    		default :
    			if(count<9)
    			{
    				*p=c;
    				p++;
    				putchar(c);
    				count++;
    			}
    		}
    	}while((count!=9) || (c!=CR));
    }
    void main()
     
    {
    	char t[30];
    	GetTel(t);
     
    }

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Ucom-C++
    salut je fait une agenda et je veut limité les bouton de calvier pour cela j'ai fait ce programme
    QU : je veut ajouté les bouton de direction
    Je recommande l'homogénéité. (Ne pas mélanger les E/S directes (conio) et standard (stdio).

    J'ai modifié ton code pour qu'il soit moins rigide :
    - accepte des numéros de téléphones de taille maximale variable.
    - fin par ESC
    - code d'erreur

    Il est possible d'ajouter les flèches pour améliorer l'édition, mais c'est assez complexe à traiter. Je te mets le code de base pour Windows XP :
    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
    104
    105
    106
    107
    108
    109
    110
     
    #include<conio2.h>
    #include<ctype.h>
    #include<string.h>
    #include<stdlib.h>
    #include<assert.h>
     
    #define BS 8
    #define CR 13
    #define LF 10
    #define EXT 224
    #define ESC 27
     
    int GetDigit (void)
    {
       int c;
       do
       {
          c = getch ();
       }
       while (!isdigit (c) && c != CR && c != BS && c != EXT && c != ESC);
     
       return c;
    }
     
    int GetNum (char *t, size_t size, size_t n)
    {
       int err = 1;
       if (size > n)
       {
          char *buffer = malloc (sizeof *buffer * n + 1);
          if (buffer != NULL)
          {
             int c;
             size_t count = 0;
             do
             {
                c = GetDigit ();
     
                switch (c)
                {
                case EXT:
                   if (kbhit ())
                   {
                      c = getch ();
                      switch (c)
                      {
                      case 77:     /* LEFT */
                         /* ... */
                         break;
                      case 75:     /* RIGHT */
                         /* ... */
                         break;
                      }
                   }
                   break;
                case BS:
                   if (count != 0)
                   {
                      putch (BS);
                      putch (' ');
                      putch (BS);
                      count--;
                   }
                   break;
                case CR:
                   buffer[count] = '\0';
                   strcpy (t, buffer);
                   putch (CR);
                   putch (LF);
                   err = 0;
                   break;
                case ESC:
                   putch (CR);
                   putch (LF);
                   break;
                default:
                   if (count < n)
                   {
                      buffer[count] = c;
                      putch (c);
                      count++;
                   }
                }
             }
             while (c != CR && c != ESC);
             free (buffer), buffer = NULL;
          }
          assert (buffer == NULL);
       }
       return err;
    }
     
    #include <stdio.h>
     
    int main (void)
    {
       char t[30];
       int err = GetNum (t, sizeof t, 10);
     
       if (!err)
       {
          printf ("num = '%s'\n", t);
       }
       else
       {
          printf ("saisie invalide\n");
       }
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

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

Discussions similaires

  1. [WD-2010] Programmer les boutons de commandes de mise en forme
    Par morobaboumar dans le forum Word
    Réponses: 4
    Dernier message: 15/03/2020, 00h09
  2. Programmer les boutons de modification d'un DataSet
    Par powerweb dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/05/2009, 10h48
  3. Programmer les boutons d'une JSP
    Par minos23 dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 20/04/2009, 17h43
  4. programmer les boutons en php
    Par nagios dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2008, 23h58
  5. Programmer les flèches de clavier
    Par ratsmok dans le forum Débuter
    Réponses: 3
    Dernier message: 26/04/2008, 21h13

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