begin process at 2008 09 05 13:26:01
1 237 231 membres
186 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : getchar non bloquant !!! [ Archives / Au secours ] (MasterNKZ)

getchar non bloquant !!! le 02/02/2003 14:51:36

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

Re : getchar non bloquant !!! le 02/02/2003 15:02:41

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

Re : getchar non bloquant !!! le 02/02/2003 17:29:10

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
>

Re : getchar non bloquant !!! le 02/02/2003 20:45:39

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
> >
>

Re : getchar non bloquant !!! le 03/02/2003 13:24:56

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
> > >
> >
>

Re : getchar non bloquant !!! le 03/02/2003 13:29:11

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
> > > >
> > >
> >
>

Re : getchar non bloquant !!! le 03/02/2003 23:07:00

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
> > > > >
> > > >
> > >
> >
>


Classé sous : ke, prog, existe, getchar, bloquant

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS