Getchar sans pause (keypress) c/c++ sous linux PLZ!!

davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008 - 22 déc. 2004 à 20:10
lilington Messages postés 158 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 12 mars 2009 - 5 mars 2005 à 21:36
Bonjour tt monde,
apres des jours de recherches j'arrive pas a resoudre un probleme clee pour un projet, j'espere que vous allez m'aider un peu et merci d'avance.

Je suis en train de programmer un shell avec c sous linux, alors souvent je dois prgrammer des fonction qui réagir en fonction des touches de clavier cliquées (ctr-c pour fermer fichier, les touches des fleches pour monter a une commande deja executer ....).

gets, getchar, read, scanf.... font des pauses au programme et il faut tapper Entrer chaque fois pour terminer l'execution! :(.

alors je cherche une moyenne pour resoudre ce probleme, une methode qui me permet comment detecter les touches de clavier sans faire une pause!

ncurses et curses ne resoudrent pas mon probleme car je dois effacer mon ecran et refaire tt, c'est pas mon cas :(

merci d'avance

13 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 déc. 2004 à 21:19
Comme t'es sous linux, tu peux chercher coté /dev... t'as peut-être quelquechose...

Sinon, tu peux chercher les sources d'une console déja en place...

Moi person j'ai trouvé un bug dans Kconsole... ou alors bash je sais pas, mais c'était spé... Si tu veux la capture, contacte moi : coucou747@hotmail.com j'ai même fait cette capture sous KDE et Gnome... A l'orogine c'était une soirée jeux en réseau (je suis venu avec mon linux faire du freecraft et du freeciv ^^) et qqn m'a piqué mon pc pour taper une commende à la con... si qqn veut la capture...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
23 déc. 2004 à 11:19
On peut auss te contacter même si on a pas linux ? :-p allez, dis voui!!! lol!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 déc. 2004 à 12:24
euh... Maman, y a un pédophile qui m'agresse ....
LOL

Oui évidement. Mais pas de foutages de gueules...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
23 déc. 2004 à 13:00
Euh, je en sais pas quel age tu as, mais perso j'en ai 17 :-p donc jsuis pas trop agé je pense! lol!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 déc. 2004 à 13:57
salut
bientot 16
++
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
23 déc. 2004 à 21:16
Hey les mecs!!, ce n'est pas un forum de rencontres ici :p
merci chef de ton aide!
mais j'attends des réponses plus détailler...
merci d'avance
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
23 déc. 2004 à 21:24
Ben contacte le, fais comme moi! apres on se dit des mots doux sur msn! hmmm!!! :big) xpldr!

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 déc. 2004 à 21:59
dsl je suis casé...

tu veux faire quoi comme programme ?

comme disais coluche :
expliquez nous ce dont vous avez besoin, on vous expliquera comment vous en passer...

C'est faisable sinon avec SDL...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
23 déc. 2004 à 22:06
Mais nan coucou, je sais que tu m'adores, fait aps ton timide! on le dira à personne! mdr!!! :)

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
24 déc. 2004 à 17:58
bon les amis, c'est bon! j'ai cree une nouvelle fonction getstr_key() (comme gets()) qui permet d'utiliser les flèches, les boutons Suppr, Fin, Backspace, Ctrl-c,.... qui peut etre utilise pour des shell, et surtout pour les jeux sans ncurses, ni curses, ni OpenGL/directx ... je met le code bientot sur cppfrance.
a+++
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
24 déc. 2004 à 20:56
re les amis!
qlqn peut m'aider pour lancer des programmes et des commandes du système en avant-plan et en arrière-plan (sous forme d'une fonction ou procédure reçois des arguments).
merci d'avance.
a+
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 déc. 2004 à 11:56
par exemple :
system("clear");

sinon, bah dépiote les sources de bash...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
lilington Messages postés 158 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 12 mars 2009
5 mars 2005 à 21:36
essais toujours les bonnes vielles methodes:

if(kbhit()) key= getch(); ici est il ny a pas de pause ça signifie que tu doit mêtre dans une boucle.

tiens un example:



while (key!=27)

{

if(kbhit()) key= getch();

printf("salut ");

}



est affiché "salut " à l'écrant jusqu'a ce que tu tape ESC
0
Rejoignez-nous