cin non bloquant

cin non bloquant - C++ - Programmation

Marsh Posté le 25-09-2010 à 05:33:50    

Bonjour à tous,
 
j'aimerais savoir s'il existe un moyen de faire un cin non bloquant ?
J'ai une boucle, et à l'intérieur de cette boucle un cin. Je voudrais que la boucle s’exécute  
tant que aucune information n'ai saisie au clavier.
 
J'ai essayé d'utiliser cin.gcount ou cin.oef mais sans succès.
Je suis sous unix. Quelqu'un connait il un moyen ?
 
Merci.

Reply

Marsh Posté le 25-09-2010 à 05:33:50   

Reply

Marsh Posté le 25-09-2010 à 08:37:09    

Oui, il y a moyen de hacker qqch qui donne l'impression d'avoir ce que tu veux, mais je conseille putôt d'abandonner cette idée et d'attaquer directement les possibilités de l'OS, quitte à les encapsuler, plutôt que d'utiliser une interface qui n'a pas été conçue pour ça.  Regarde curses et le chapitre adéquat chez Stevens ou http://www.gnu.org/s/libc/manual/h [...] -Interface si tu veux attaquer encore plus bas.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 25-09-2010 à 11:50:13    

Dommage que ça n'existe pas c'était pour du bidouillage temporaire :-(
 
Merci pour ta réponse.

Reply

Marsh Posté le 25-09-2010 à 12:24:58    

Citation :

J'ai une boucle, et à l'intérieur de cette boucle un cin. Je voudrais que la boucle s’exécute  
tant que aucune information n'ai saisie au clavier.


Au sens de tant qu'aucune touche clavier n'a été tapée, ou bien au sens de tant que l'utilisateur n'a pas tapé une entrée de donnée terminée par un retour chariot?
Dans le premier cas, il y a pas vraiment de code plate-forme indépendant, il faut aller voir dans google avec "kbhit linux" et choisir parmi les diverses solutions proposées (il y a aussi ceci, http://www.vmunix.com/~gabor/unix.html qui est peut être un peu plus ancien, mais qui semble assez bien fait)
Dans le second cas, il doit y avoir une solution pure c++ basée sur la valeur de cin.tellg(), je pense.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 26-09-2010 à 00:25:16    

Les deux cas me conviennent en fait, c'est de la grosse bidouille d'urgence.
Je regarde ce que tu m'as dit.
 
Merci bien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed