Poster une réponse à un sujet: [C++] Quelle librairie ?
Attention, ce sujet est un sujet ancien (5715 jours sans réponse)
arckauss
Franchement, la je vois pas trop...
Peut-etre threader le getch() et réagir en fonction ?

Je ne suis pas trop sur non plus de voir ce que tu veux faire... Faut dire que j'ai jamais tripoté libpcap...
Je jette un oeil après un ptit rangement plus qu'indispensable et je te tiens au courant.
blietaer
je ne désire pas utiliser de while() : je travail avec une fonction libpcap, qui ne revient jamais et qui contient (sans doute?) une while() infinie, la seule main mise que je peux avoir, est dans la fonction d'exception qui revient, à chaque paquet lu, c'est à ce moment que je peux vérifier si une touche AVAIT été frappée.
arckauss
ouep, suffit d'utiliser un while.
Enfin, si j'ai bien compris ce que tu voulais.

  1. ... 
  2. int key; 
  3. while( key != 'q' ) 
  4.      key=getch(); 
  5.      ... 
  6.      ... 
  7. ...


On peut le faire aussi avec un while et un switch case, pratique pour les formulaires ou quand y a plein de touches :

  1. ... 
  2. int key; 
  3. while( (key=getch()) != 'q' ) 
  4.      switch(key) 
  5.      { 
  6.           case KEY_DOWN : //par exemple... 
  7.                 //blabla 
  8.                 break
  9.           default : 
  10.                break
  11.      } 
  12. //suite du programme
blietaer
arkauss> si tu as un truc pour "écouter" l'entré clavier et détecter la touche 'q' pour quiter, SANS utiliser un getc() bloquant (le but est que l'appli tourne tant qu'on ne quite pas).

ncruses propose des wgetch() et des timeout(0) mais ce n'est pas concluant...
ovh
Python powa moi je dis :philfr:
arckauss
Ouais en effet, ncurses est niquel pour ça, sinon va falloir commencer à chipoter avec les séquences d'échappement et tout le basard, c'est assez lourd je trouve...
En plus, il y a un portage pour windows, au cas ou tu voudrais rendre ton code portable :smile:
http://pdcurses.sourceforge.net/
Et si tu veux faire du c++, apparemment il y a un development kit ici : http://ndk-xx.sourceforge.net/.
Mais je l'ai pas testé, je n'ai fait que du C avec ncurses.

C'est marrant car j'ai commencé un projet tout récemment avec ncurses, donc si t'as besoin d'un tuyau ou de code (notamment tout un systeme de barre de menu), n'hésite surtout pas à demander.

M'en vais d'ailleurs bosser sur les formulaires :smile:
blietaer
Je vois un peu les possibilités.
Merci d'avoir pris le temps de taper cela.
On est d'accord que c'est du pure C (ce qui ne pose aucun problème, au contraire: je suis de ceux qui ne font qu'une maigre différence avec le C++)

Le résultat est un peu sureprenant: je n'avais pas fait un clear de mon terminal, ca se ballade un peu partout ! :petrus:

Merci.
philfr
Essaie un truc comme ça:



#include <stdio.h>
#include <stdlib.h>

int main(void)
{
setvbuf(stdout, (char*)NULL, _IONBF, 0);

printf("^[[2J");
printf("^[[25B");
printf("^[[s");
printf("Hello, world");

sleep(1);
printf("\rHello, 1 world");

sleep(1);
printf("\rHello, 2 world");

sleep(1);
printf("\rHello, 3 world");

sleep(1);
printf("\rHello, 4 world");
printf("^[[10;20H");
printf("Hello, A world\n");

sleep(1);
printf("^[[7;24H");
printf("Hello, B world\n");

sleep(1);
printf("^[[5;28H");
printf("Hello, C world\n");
printf("^[[u");

exit(0);
}



Edit: évidemment, le ^[ c'est un caractère escape que vim permet d'entrer avec ctrl-V <ESC>

Mais je joins le fichier :oh:
blietaer
Command line linux ou aussi windows ?

Mmh je dirais Linux seulement.


Dernière ligne qui peut s'écraser et c'est tout ?

En fait oui, ou alors tout un écran rafraichi.


Affichage de lignes un peu partout sur une console ?

Ca serait le top.


Console redimensionnable ?

Pas spécialement, un plus (je suppose que tu penses à du xterm?)


Peut-être te faut-il juste des codes ANSI ?

Peut-être...
Catégorie:  






Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?