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

Signaler
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008
-
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009
-
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

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

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!! :-))
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

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!! :-))
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008

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
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

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!! :-))
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

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!! :-))
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008

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+++
Messages postés
150
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
8 janvier 2008

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+
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
158
Date d'inscription
samedi 31 janvier 2004
Statut
Membre
Dernière intervention
12 mars 2009

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