Accueil > Forum > > > > getchar non bloquant !!!
getchar non bloquant !!!
dimanche 2 février 2003 à 14:51:36 |
getchar non bloquant !!!

MasterNKZ
|
Salut tout le monde, Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. j'ai une boucle de ce genre: do{ c=getchar(); /* series d'actions */ while(c!='q'); le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. Niko
|
|
dimanche 2 février 2003 à 15:02:41 |
Re : getchar non bloquant !!!

trinitacs
|
------------------------------- Réponse au message : En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée.
Pour cela utilise une bibliothèque ou les interuption du bios. En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé.
Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch();
-------------------------------
> Salut tout le monde, > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > j'ai une boucle de ce genre: > > do{ > c=getchar(); > /* > series d'actions > */ > while(c!='q'); > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > Niko
|
|
dimanche 2 février 2003 à 17:29:10 |
Re : getchar non bloquant !!!

cmarsc
|
salut,
getch(); voir dans <ncurses.h> si c'est une fonction comme kbhit il faudrait l'écrire
------------------------------- Réponse au message : -------------------------------
> > > > > ------------------------------- > Réponse au message : > En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée. > > Pour cela utilise une bibliothèque ou les interuption du bios. > En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé. > > Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch(); > > ------------------------------- > > > Salut tout le monde, > > > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > > j'ai une boucle de ce genre: > > > > do{ > > c=getchar(); > > /* > > series d'actions > > */ > > while(c!='q'); > > > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > > > Niko >
|
|
dimanche 2 février 2003 à 20:45:39 |
Re : getchar non bloquant !!!

MasterNKZ
|
j'ai deja teste tout ce ki pouvait ressembler a getchar de pres ou de loin dans <ncurses.h> et rien de convaincant. cmarsc, je n'ai pas compris ta deuxieme phrase, je ne sais pas ce ke c ke kbhit...
Niko
------------------------------- Réponse au message : -------------------------------
> salut, > > getch(); voir dans <ncurses.h> > si c'est une fonction comme kbhit il faudrait l'écrire > > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > > > > > > > > > ------------------------------- > > Réponse au message : > > En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée. > > > > Pour cela utilise une bibliothèque ou les interuption du bios. > > En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé. > > > > Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch(); > > > > ------------------------------- > > > > > Salut tout le monde, > > > > > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > > > j'ai une boucle de ce genre: > > > > > > do{ > > > c=getchar(); > > > /* > > > series d'actions > > > */ > > > while(c!='q'); > > > > > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > > > > > Niko > > >
|
|
lundi 3 février 2003 à 13:24:56 |
Re : getchar non bloquant !!!

cmarsc
|
kbhit() <conio.h> (sous dos borland bien souvent) est une fonction qui detecte si une touche a été frappée, elle fait une boucle sans fin et s'arrecte une fois que l'on presse n'importe quelle touche, malheuresement est n'existe pas sous linux. il faut l'écrire nous même :-(
------------------------------- Réponse au message : -------------------------------
> j'ai deja teste tout ce ki pouvait ressembler a getchar de pres ou de loin dans <ncurses.h> et rien de convaincant. > cmarsc, je n'ai pas compris ta deuxieme phrase, je ne sais pas ce ke c ke kbhit... > > Niko > > > ------------------------------- > Réponse au message : > ------------------------------- > > > salut, > > > > getch(); voir dans <ncurses.h> > > si c'est une fonction comme kbhit il faudrait l'écrire > > > > > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > > > > > > > > > > > > > ------------------------------- > > > Réponse au message : > > > En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée. > > > > > > Pour cela utilise une bibliothèque ou les interuption du bios. > > > En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé. > > > > > > Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch(); > > > > > > ------------------------------- > > > > > > > Salut tout le monde, > > > > > > > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > > > > j'ai une boucle de ce genre: > > > > > > > > do{ > > > > c=getchar(); > > > > /* > > > > series d'actions > > > > */ > > > > while(c!='q'); > > > > > > > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > > > > > > > Niko > > > > > >
|
|
lundi 3 février 2003 à 13:29:11 |
Re : getchar non bloquant !!!

cmarsc
|
getch est dans <curses.h> et non <ncurses.h>
------------------------------- Réponse au message : -------------------------------
> kbhit() <conio.h> (sous dos borland bien souvent) est une fonction qui detecte si une touche a été frappée, elle fait une boucle sans fin et s'arrecte une fois que l'on presse n'importe quelle touche, malheuresement est n'existe pas sous linux. il faut l'écrire nous même :-( > > > ------------------------------- > Réponse au message : > ------------------------------- > > > j'ai deja teste tout ce ki pouvait ressembler a getchar de pres ou de loin dans <ncurses.h> et rien de convaincant. > > cmarsc, je n'ai pas compris ta deuxieme phrase, je ne sais pas ce ke c ke kbhit... > > > > Niko > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > salut, > > > > > > getch(); voir dans <ncurses.h> > > > si c'est une fonction comme kbhit il faudrait l'écrire > > > > > > > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée. > > > > > > > > Pour cela utilise une bibliothèque ou les interuption du bios. > > > > En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé. > > > > > > > > Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch(); > > > > > > > > ------------------------------- > > > > > > > > > Salut tout le monde, > > > > > > > > > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > > > > > j'ai une boucle de ce genre: > > > > > > > > > > do{ > > > > > c=getchar(); > > > > > /* > > > > > series d'actions > > > > > */ > > > > > while(c!='q'); > > > > > > > > > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > > > > > > > > > Niko > > > > > > > > > >
|
|
lundi 3 février 2003 à 23:07:00 |
Re : getchar non bloquant !!!

MasterNKZ
|
c bon g trouvé une astuce en mtapant les man en anglais, je met juste halfdelay(1) et j'utilise wgetch halfdelay permet de parametrer le tps d'attente en dixieme de seconde pour wgetch(et autres cousins de wgetch). Niko
------------------------------- Réponse au message : -------------------------------
> getch est dans <curses.h> et non <ncurses.h> > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > kbhit() <conio.h> (sous dos borland bien souvent) est une fonction qui detecte si une touche a été frappée, elle fait une boucle sans fin et s'arrecte une fois que l'on presse n'importe quelle touche, malheuresement est n'existe pas sous linux. il faut l'écrire nous même :-( > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > j'ai deja teste tout ce ki pouvait ressembler a getchar de pres ou de loin dans <ncurses.h> et rien de convaincant. > > > cmarsc, je n'ai pas compris ta deuxieme phrase, je ne sais pas ce ke c ke kbhit... > > > > > > Niko > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > salut, > > > > > > > > getch(); voir dans <ncurses.h> > > > > si c'est une fonction comme kbhit il faudrait l'écrire > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > En fait tu veux savoir si la touche q a été pressé. Le gethar peut être non bloquant si le buffer est déjà plein. Mais ce n'est pas une solution car j'ai l'impression que tu désire détecter si la touche q a été pressée. > > > > > > > > > > Pour cela utilise une bibliothèque ou les interuption du bios. > > > > > En tout cas je ne connais pas de fonction ANSI/ISO du C/C++ qui te signale qu'elle a été la touche pressé. > > > > > > > > > > Sinon tu peux chercher dans le fichier équivalant à conio qui fourni getch(); > > > > > > > > > > ------------------------------- > > > > > > > > > > > Salut tout le monde, > > > > > > > > > > > > Je programme en C sous linux, et je voudrai savoir si il existe une astuce pour rendre le getchar non bloquant, ou existe t-il une fonction similaire a getchar mais non bloquant. > > > > > > j'ai une boucle de ce genre: > > > > > > > > > > > > do{ > > > > > > c=getchar(); > > > > > > /* > > > > > > series d'actions > > > > > > */ > > > > > > while(c!='q'); > > > > > > > > > > > > le probleme c ke arrivé à la ligne du getchar le prog s'y arrete et attend ke j'appuie sur une touche et moi je voudrai que si je tape rien il continue, parce ke dans cet exemple c comme si je faisais tourner le prog moi meme en appuyant sur une touche (differente de 'q' bien sur), c comme si ct du pas a pas, donc si vous pouviez m'aider. > > > > > > > > > > > > Niko > > > > > > > > > > > > > > >
|
|
vendredi 19 février 2010 à 00:54:59 |
Re : getchar non bloquant !!!

FlorimondH
|
[Déterrage]
Merci t'as solution m'a aidé. Cependant, 'haldelay(1)', au lieu de rendre getch totalement non bloquant, introduit un dixième de seconde de temporisation alors que l'on pourrait utiliser simplement 'nodelay'
exemple:
/* curses.h définit TRUE = 1 et FALSE = 0 */
nodelay (stdscr, TRUE);
-> http://linux.die.net/man/3/halfdelay
a+ collègue manchot ;)
|
|
Cette discussion est classée dans : ke, prog, existe, getchar, bloquant
Répondre à ce message
Sujets en rapport avec ce message
petite question mais ke j'ai besoin [ par superoi ]
bon \jour je sais que c'est con mais j'ai vraiment besoin de savoir c'est pour savoir si ca existe en c ca : long (*f)(void)(char *str); et est ce
utiliser un Timer [ par melkiorlenecrarque ]
hello! jutilise VC++ 6 et et j'essai de transcrire mon programme "combat warhammer" pour windowsvoila mon pb:mon prog en appuyant sur un boutton execu
mes questions sans réponses [ par leprov ]
salut a tous.apres avoir posté ces differentes kestion et ne pas y avoir eu de reponses (maintenant elles sont a perpetes ds la liste des topics, dc j
faire un prog msn [ par fenders ]
salut tt le monde!!En fait je voudrais en svoir plus en matiere de programmation notament pr fr des prog pr msn.Est ce ke kelkun pe me dire kl langage
port ftp [ par nickelbackes ]
Bonjour, en fait j'ai fait un petit prog qui me permet de transferer des fichiers d'un ordi vers mon serveur ftp, tous marche nikel,le seul probleme c
Existe t il un prog qui efface automatiquement un fichier selon des criter defini [ par faznet ]
Mon cas est desespérévoila j ai besoin d un prog ou d une source ou n 'importemais d' une solution.En effet, j ai besoin d efaccer un ou des fichiers
kestion sur updateresource?? [ par youpiyoyo ]
j'ai un petit problemeje n'ai pas pu faire un updateresource a partir de mon prog ki etait entrain de tourner..alors je me suis di faisons une dll, je
pbme avec dev-c++ [ par imothepe_33 ]
Au fait je suis débutant et mon premier prog ke j'ai écrit est le fameux "hello world". Ce ki me tracace c ke lors de l'exécution(en mode console),la
Variables, je comprends rien! [ par StevenJLMunn ]
J`ecris avec un clavier americain donc je ne peut pas ecrire avec les acents.Je fais un prog pour les codes serie (je pense ke tout le monde siat ce k
systray [ par leprov ]
bonjour a tous.apres avoir arpenté les sources, j'ai trouvé pas mal de sources pour mettre un prog ds la systray, mais jai pas mal de mal a capter com
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|