Escape-Sequenzen bei Tastatureingabe - Funktionstasten etc.



  • Hallo,

    kennt jemand eine Methode, wie man das Problem umschiffen kann, wenn ich mit getchar() ein Zeichen von der Tastatur einlese und der Benutzer drückt eine nicht anzeigbare Taste - sprich es kommt eine Escape-Sequenz raus aus mehreren Folgen? Das Programm interpretiert die Folge anders und hält bei dem nächsten getch() nicht an. Das soll es aber und die Eingabe ignorrieren, wenn keine anzeigbare Taste gedrückt wurde.
    Habe da was von getwchar() aus wchar.h gehört, funktioniert aber nicht so richtig??!!

    Vielen Dank.



  • probiers mal mit

    while(c=getchar() >33 && <127)
    {
       lalelu
    }
    

    Siehe AsciiTable, bin nicht ganz sicher ob die Zahlen stimmen, aber im Prinzip musst du ja nur den Bereich einbinden, den du auch ausgeben kannst also von
    a - z oder a - Z etc.



  • Das geht leider nicht, da wenn er Entf drückt, kommt als erste Sequenz 27 - nicht erlaubt OK, aber beim nächsten Durchlauf kommt ohne auf eine Eingabe des Nutzers zu warten beim Aufruf von getch() eine 91 zurück und diese wird als ein Zeichen interpretiert, obwohl der Nutzer dieses Zeichen nicht eingegeben hat, was der Computer angibt.



  • Hab die Antwort gefunden!



  • keypad(stdscr,TRUE);
    


  • ja dann sag doch glei das du mit Ncurses arbeitest. Wenn du jetzt noch ein raw()
    einfügst übergehst du auch Strg-c (unter Linux)


Anmelden zum Antworten