Lire des caracteres ou entier sans appuier sur entree

Signaler
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014
-
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014
-
bonjour,
est ce que quelqu'un possede une fonction qui peut lire des entiers ou des caracteres sans appuier sur la touche entree.


Ellouze Zied

14 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
getchar je crois.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
autre méthode, si API, tu peux le faire a partir de l'évenement clavier.



@+;
satellite34

http://wxcod.free.fr/forum/
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
8
Si tu es en mode console :
char c = getch();

Si tu es en mode fenêtré (API Win32), rajoute dans ta fonction de traitement des messages :
case VK_UP:
c = (char)lParam; //(ou wParam je ne sais plus)
break;
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

je ne sais pas la difference entre le mode console et le mode fenetre(API win32).
pour vous expliquer j'utilise Microsoft Visual 6.0.


Ellouze Zied
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Une console c'est un petit ecran noir. C'est l'interface MS-DOS. Une fenetre c'est une fenetre que dire de plus. C'est une interface plus avancer qui peut inclure des zones de textes, des bouttons etc. Le simple fais d'utiliser ton naviguateur te montre ce qu'est un fenetre.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

pour getchar() elle accepte un seul caractere mais je veux une fonction pour plusieurs caractere a lire

Ellouze Zied
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
ben une boucle...
tant que j'ai pas lu assez de caractère
je continue à appeler getchar sinon j'arrête

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Ouais ou tan que le caractère tapé n'est pas le bon, on continue la boucle. Petit exeple

int c = 0;

while(c != 'q')
   c = getchar();

Alors tant que q n'est pas tapez, la boucle continue.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

salut ....
if
(!Meilleur("Joky"

)) return ERREUR;<


je n'est pas compris cette methode est ce que tu peux m'aider et me donner une solution dans un exemple.
et merci d'avance.

Ellouze Zied
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Ça dépend quesqu'tu veut faire avec. Si tu veut les mettre dans une chaine de caractère essais ceci:

char texte[256];
int pos = 0;

while(pos != 15) /*Nombre max de caractère que tu veut que l'utilisateur puisse entré*/
{
   texte[pos] = getchar();
   pos++;
}

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

bonjour mon objectif est de lire plusieurs fois des entiers sans appuier sur entree
par exemple si j'appuie sur 159 il m'affiche "merci"
                     si j'appuie sur 222 il m'affiche "de rien".
et merci d'avance.
Ellouze Zied
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
Oula c'est un peu plus compliqué là car voit tu, 1, 5, 9 compte tous pour des caractère bien différent. Il faudrait presque créé une boucle qui compare les chiffres comme ceci:

char texte[4];
ìnt pos = 0;

while(1)
{
   texte[pos] = getchar();

   texte[pos+1] = '\0'; /* ici je sais pas si c'est la bonne solution */
   
   if(strncmp(texte, "159", 3) == NULL)
   {
      printf("Merci");
      return 0;
   }

pos++;
}

Ya surement un autre moyen mais je le connais pas :P
___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

desole mon exemple est faux car les caracteres que je vais utiliser ne sont pas different

par exemple si j'appuie sur 11 il m'affiche "merci"
                     si j'appuie sur 222 il m'affiche "de rien".

et je vais essaier avec ton exemple et s'il vous plait si tu as une solution plus facile que la precedante envoie le.
et merci d'avance.
Ellouze Zied
Messages postés
85
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
4 août 2014

desole mon exemple est faux car les caracteres que je vais utiliser ne sont pas different

par exemple si j'appuie sur 11 il m'affiche "merci"
                     si j'appuie sur 111 il m'affiche "thank you"
                     si j'appuie sur 222 il m'affiche "de rien".

et je vais essaier avec ton exemple et s'il vous plait si tu as une solution plus facile que la precedante envoie le.
et merci d'avance.

Ellouze Zied