Hintergruendige Eingabe

Hallo Experten,

mir stellt sich beim Programmieren einer Uhr folgendes Problem:
Ich wuerde gern, dasz die Uhr ganz gemuetlich vor sich hintuckelt und sich erhht, und im Hintergrund immer ganz gespannt auf die Tastatur schaut, ob dort eventuell die Taste s fuer stop gedrueckt wird. Ist das der Fall, dann soll das Programm anhalten. Mit dem untigen Programm in Main wird das allerdings nix :frowning:
Hat vielleicht jemand eine gute Idee?

micha

Hier das Programm

/\*Uhr\*/

#include 
#include 
#include 
#include 

class uhr
{
 public:
 void anzeigen(void) {cout maxwert-1 || wert 

Hallo!

Also das solltest du mit select() hinbekommen, also quasi in der Art:

(ungetestet)

fd\_set fdr;
time\_val tv;
tv.sec = 1;
while ()
{
 FD\_ZERO(&fdr);
 FD\_SET(STDIN\_FILENO, &fdr);
 // [uhr-Funkts]

 select(STDIN\_FILENO+1, &fdr, NULL, NULL, &tv);

 if ( FD\_ISSET(STDIN\_FILENO, &fdr) )
 {
 // ja es gab eine Eingabe

 return 0;
 }

}

Allerdins ist das alles bei mir eine Weile her und ich denke, du mußt stdin zuerst einmal das Linebuffering abgewöhnen - ich glaube ich habe das damals einfach bequemerweise mit raw() aus ncurses gemacht.

…oder mach’s gleich mit Curses :wink:

HTH