Pfeiltasten unter ncurses



  • Moin,
    wenn ich mit ncurses programmiere, und über getch() die Tasteneingabe
    engegennehme und dann im Programm die Pfeiltasten drücke, dann werden ja
    drei int-Werte übergeben.

    for(;;)
    {
     k = getch();
    }
    

    Drücke ich Pfeiltaste-Oben, dann wird "k" dreimal hintereinander mit einem Wert
    belegt.
    Gibt es evtl irgendeine Möglichkeit das Ganze folgender Maßen zu regeln?:

    #define CUR_UP xxxxx
    for(;;)
    {
     k = getch(); //getch() oder andere vergleichbare Funtion
     if(k == CUR_UP)
       return 0;
    }
    

    Also so, dass "k" nur einmal belegt wird.

    Danke für Antworten!

    [EDIT]

    habs jetzt doch noch gefunden 🤡

    int k;
    
    initscr();
    keypad(stdscr, TRUE);
    noecho();
    for(;;)
    {
     k = getch();
     if(k == KEY_UP || k == KEY_DOWN || k == KEY_LEFT || k == KEY_RIGHT)
       printw("Eine Pfeiltaste wurde gedrueckt.\n");
    }
    

    Ich hoffe, dass das dann zu mindest für andere nochmal hilfreich ist. 🙂


Anmelden zum Antworten