Bonjour,
J'aimerais savoir si c'est possible que le terminal récupère un caractere sans attendre que l'utilisateur appuie sur enter, ça va vraiment m'epargner un tas de problemes si ça existe.
Merci d'avance
Version imprimable
Bonjour,
J'aimerais savoir si c'est possible que le terminal récupère un caractere sans attendre que l'utilisateur appuie sur enter, ça va vraiment m'epargner un tas de problemes si ça existe.
Merci d'avance
Eh oui ça existe:
C'est toutCode:int key = getch();
Je pense qu'il faut plutot faire comme ça ;)
enfin suis pas sur le mode console et cout cin ca remonte à loin....... mdrCode:
1
2
3
4
5
6
7
8
9
10
11
12 int main() { char c; cout<<"caractere"<<endl; c = getch(); cout<<"votre caractere: "<<c<<endl; return 0; }
Il n'y a rien en standard qui permette de faire ça.
La plupart des bibliothèques d'IHM permettent de le faire, en piochant dans des fonctions spécifiques à un OS. Maintenant, il faut savoir à quoi ressemble le reste de ton IHM pour mieux t'aiguiller. Si c'est du mode texte, cherches curses sur google.
Mais le plus simple est quand même de se passer de cette fonctionnalité si on peut.
Merciiiiiii ça marche et en plus c'est trop cool avec cette fonctionnalité :),mille mercis.
Pourquoi? Par exemple,dans mon programme je demande pas mal de fois à l'utilisateur de choisir en se servant des caracteres('o' si oui 'n' sinon),or il se trouve que le fait de saisir une string au lieu d'une lettre me pose probleme et ca m'oblige à la rigueur de faire le teste à chaque fois(do while)..enfin je trouve que l'utilisation de cette fonctionnalité pourrait simplifier grandement le boulot,enfin je ne sais pas trop mais c'est juste que j'aimerais comprendre,puisque vous adoptez cet avis c'est qu'il y a une bonne raison,ce serait bien de nous en faire part :ccool:
Simplement parce que getch n'est pas portable.
Que dites vous de getc(stdin) alors??J'ai appris qu'elle est meilleure que la fonction getch(),donc j'essaye de l'exploiter mais,et le probleme est qu'il ya un mais,ca ne saisit pas aussitot que l'utilisateur tape une touche,dites moi ce qui ne va pas dans ce bout de code s'il vous plait:
Code:
1
2
3
4
5
6
7
8 int carac; for (;;)///la boucle qui attend la saisie de l'utilisateur { carac=getc(stdin); if (carac != 0) break; } cOUn=carac; ///cOUn est le char dont j'aurai besoin apres et carac me sert de variable de teste cout<<cOUn;