PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tastaturpuffer lesen



blackbird
09-07-2000, 22:52
hi!

ich hab hier ein programm welches mir meinen mp3-player steuert (projekt von der c´t von anfang ´99 - mp3-player am parallelport, läuft auch auf den schwächsten rechnern http://www.linuxforen.de/ubb/wink.gif ) und wollte den player ein wenig erweitern. bislang kann ich den nur über eine ir-fernbedienung bedienen, würd das aber auch gern über die normale tastatur erledigen können.
also brauch ich eine funktion, welche aus dem tastaturpuffer ein zeichen auslesen kann. allerdings geht getchr() nicht, da getchr() ja auf eine eingabe wartet, wenn nichts im puffer steht, das kann ich nicht gebrauchen. ich möchte schaun, ob etwas im tastaturpuffer steht. wenn ja, soll der puffer ausgelesen werden und dieses oder jenes getan werden. wenn nichts drinsteht, soll auch nichts passieren, das programm läuft normal weiter..

ich hoff mal dass es einigermassen klar geworden ist, um was es mir geht http://www.linuxforen.de/ubb/wink.gif

wär echt gut, wenn mir da jemand weiterhelfen könnte!

grüsse blackbird

blackbird
12-07-2000, 22:45
so jetzt hab ich selber ne lösung gefunden.. hatte n paar studen in der schule zeit und ausserdem nen brauchbaren dozenten http://www.linuxforen.de/ubb/wink.gif

hier meine vorläufige lösung, falls sich jemand dafür intressieren sollte:


#include <stdio.h>
#include <curses.h>

int main(void)
{
int taste = -1;

initscr(); // curses-umgebung einrichten
cbreak();
timeout(0); // kein timeout - wenn keine char's im puffer stehen, nicht aufhalten lassen
nonl();
keypad(stdscr, TRUE); // keypad - behandlung einschalten, sonst muesste ich mich selber um die esc-sequenzen kuemmern...
noecho();

while( 1 )
{
taste = getch();
if( taste != -1) printw(" %d" ,taste);
}

endwin(); // curses-umgebung aufloesen
printf("\n\n");
return(0);
}

blackbird
12-07-2000, 22:49
so jetzt hab ich selber ne lösung gefunden.. hatte n paar studen in der schule zeit und ausserdem nen brauchbaren dozenten http://www.linuxforen.de/ubb/wink.gif

hier meine vorläufige lösung, falls sich jemand dafür intressieren sollte:


#include &lt;stdio.h&gt;
#include &lt;curses.h&gt;

int main(void)
{
int taste = -1;

initscr(); // curses-umgebung einrichten
cbreak();
timeout(0); // kein timeout - wenn keine char's im puffer stehen, nicht aufhalten lassen
nonl();
keypad(stdscr, TRUE); // keypad - behandlung einschalten, sonst muesste ich mich selber um die esc-sequenzen kuemmern...
noecho();

while( 1 )
{
taste = getch();
if( taste != -1) printw(" %d" ,taste); // innerhalb des curses-fensters klappts mit printf() nicht so ganz, printw taucht dafür ganz gut..
}

endwin(); // curses-umgebung aufloesen
printf("\n\n");
return(0);
}

24-08-2000, 22:28
hallo blackbird,
gibt es die curses.h auch unter linux?
ich dachte, es gibt sie nur unter windows... wurde mir als neuling
wenigstens gesagt *lach*
ich würde mich auf Antwort freuen, thx so far

simon

blackbird
26-08-2000, 18:26
hi!

ich kenn die curses.h (bzw wird auch ncurses für newcurses? genannt) nur von linux her. und da klappts auch http://www.linuxforen.de/ubb/smile.gif

grüsse blackbird