Saisie clavier - C++ (code::blocks)
Résolu
Zero-One
Messages postés
325
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je débute en C et je suis en train de faire un petit programme qui regroupe des instructions et fonction que j'ai vue et appris (comme un récapitulatif), alors mon problème, je cherche une fonction qui stop le programme et qui attend la saisie d'une touche au clavier.
par exemple demander a l'utilisateur d'appuyer sur "a" pour continuer (sans validation par entrer).
Merci
Je débute en C et je suis en train de faire un petit programme qui regroupe des instructions et fonction que j'ai vue et appris (comme un récapitulatif), alors mon problème, je cherche une fonction qui stop le programme et qui attend la saisie d'une touche au clavier.
par exemple demander a l'utilisateur d'appuyer sur "a" pour continuer (sans validation par entrer).
Merci
A voir également:
- Saisie clavier - C++ (code::blocks)
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Code ascii - Guide
- Saisie gestuelle iphone - Guide
- Comment taper / sur clavier - Guide
- Code puk bloqué - Guide
8 réponses
re:
j y suis j'ai trouvé
voila un exemple :
//-------------------------------------------------------------------------
#include <iostream>
#include <conio.h> //la bibliothèque de getch()
using namespace std;
int main()
{
char c; //variable caractère
cout<<"Appuyer sur ""q"" pour quitter"<<endl;
while (c!='q') //tant que c est différent de q on boucle
{
c=getch(); //affecter une touche a c
}
return 0;
}
//---------------------------------------------------------------------------------
j y suis j'ai trouvé
voila un exemple :
//-------------------------------------------------------------------------
#include <iostream>
#include <conio.h> //la bibliothèque de getch()
using namespace std;
int main()
{
char c; //variable caractère
cout<<"Appuyer sur ""q"" pour quitter"<<endl;
while (c!='q') //tant que c est différent de q on boucle
{
c=getch(); //affecter une touche a c
}
return 0;
}
//---------------------------------------------------------------------------------
Bonjour, heu moi je vois ca avec une boucle while:
jspr que ca ira
char caract = 0;
while ( caract != 'a' ) //Tant que le caractere tapé au clavier est différent de celui demandé, on boucle.
{
cout << "Appuyez sur la touche ""a"" pour continuer: " << endl;
cin >> caract;
}
jspr que ca ira
Merci pour ta réponse j'ai essayer le code, mais cela n'a pas l'effet que je voulais, dans ton code on doit tout jours valider le "a" saisie, moi je veux que sa face effet comme par exemple dans le BASIC :
DO:LOOP UNTIL INKEY$<>"" ' boucler jusqu'à ce qu'une touche soit frapper
ou bien dans PASCAL :
REPEAT
..
..
UNTIL KEYPRESSED;
DO:LOOP UNTIL INKEY$<>"" ' boucler jusqu'à ce qu'une touche soit frapper
ou bien dans PASCAL :
REPEAT
..
..
UNTIL KEYPRESSED;
Heu en C, il peut y avoir les fonction kbhit() ou encore getch() qui je pense corresondrait dans ton cas.
Getch() attend qu'une touche soit frappée au clavier.
Après tu la gère comme tu veux, dans une boucle ou directement dans ton programme principal.
Tiens moi au courant
Getch() attend qu'une touche soit frappée au clavier.
Après tu la gère comme tu veux, dans une boucle ou directement dans ton programme principal.
Tiens moi au courant
il reconnait pas Getch() et kbhit() peut être je dois ajouter une bibliothèque...
mais j'ai trouvé getchar() malheureusement ça n'a pas donné les résultats attendues
je cherche tt jour.
mais j'ai trouvé getchar() malheureusement ça n'a pas donné les résultats attendues
je cherche tt jour.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Oui excuse moi j'avais oublié de préciser la bibliothèque :s. Enfin tu l'a trouvé toi même donc tant mieux :).
Bonne continuation
Oui excuse moi j'avais oublié de préciser la bibliothèque :s. Enfin tu l'a trouvé toi même donc tant mieux :).
Bonne continuation
Re,
Moi je ne vois que system("cls"), après je pense u'l faudrait que tu code une fonction qui fasse celà.
Sinon regarde ici => https://forums.commentcamarche.net/forum/affich-6219-effacer-un-ecran-en-c
Moi je ne vois que system("cls"), après je pense u'l faudrait que tu code une fonction qui fasse celà.
Sinon regarde ici => https://forums.commentcamarche.net/forum/affich-6219-effacer-un-ecran-en-c
Effectivement, utiliser system(), ce n'est pas très C...
Pour effacer l'écran, il suffit d'utiliser une API. C'est plus compliqué, mais c'est beaucoup mieux.
Voici un petit lien : https://c.developpez.com/faq/?page=Gestion-du-clavier-et-de-l-ecran-en-mode-console#CONS_clear_screen
Cdlt
Pour effacer l'écran, il suffit d'utiliser une API. C'est plus compliqué, mais c'est beaucoup mieux.
Voici un petit lien : https://c.developpez.com/faq/?page=Gestion-du-clavier-et-de-l-ecran-en-mode-console#CONS_clear_screen
Cdlt
Pour KiraX10A , dans le dernier poste du lien que tu as donné, il y a une fonction :
Le prog se lance sans erreur mais la fonction ne donne aucun résultat (EffaceEcranTxt).
Mais merci quand-même.
Merci aussi a fiddy, MAIS (tt jour le mais qui fait peur).
Le prog se lance avec une erreur sur la ligne ou y a écris : CONSOLE_CONS_BUFFER_INFO Info;
L'erreur dit que CONSOLE_CONS_BUFFER_INFO n'a pas été déclaré.
Le prog se lance sans erreur mais la fonction ne donne aucun résultat (EffaceEcranTxt).
Mais merci quand-même.
Merci aussi a fiddy, MAIS (tt jour le mais qui fait peur).
Le prog se lance avec une erreur sur la ligne ou y a écris : CONSOLE_CONS_BUFFER_INFO Info;
L'erreur dit que CONSOLE_CONS_BUFFER_INFO n'a pas été déclaré.
A noter que :
il vaut mieux utiliser _getch que getch et q
et il vaut mieux utiliser do while ou alors penser à initialiser la variable c.
Mais sinon, c'est correct malgrés la non-portabilité.
Cdlt
Et parlant de portabilité ça serait mieux que j'utilise des fonctions et instructions plus portable, alors si vous avez mieux je suis preneur.
Disant que pour _getch() c'est réglé, a présent je cherche un CLS (effacer l'écran).
évitez : system("cls");
On m'a déjà proposé Clrscr(); de <conio.h> mais elle n'est pas reconnue ou bien je n'est pas su l'utiliser, alors ça serait bien que vous m'aidiez.
Merci