Tasten mit der getch()-Funktion abfragen.



  • Hallo Leute,

    wie frage ich mit der getch-Funktion nicht-ascii Zeichen, wie F1 PAGEDOWN ..., ab?



  • gar nicht, da es die getch() Funktion nicht gibt im ISO C++ Standard.

    Ich kenne getch nur als Funktion der curses oder aus der conio.h das hat hier aber nichts zu suchen, da es nur um ISO C++ geht.

    Was benutzt du den?

    [ Dieser Beitrag wurde am 13.09.2002 um 23:21 Uhr von kingruedi editiert. ]



  • Ja, ich weiss dass die getch-Funktion nicht ANSI-konform ist.
    Ich benutze BCC 5.5 bzw. DJGPP.
    Ich weiss, dass die Tasten wie F1 - Pfeil hoch usw. zwei ASCII-Zeichen haben, blos, wie kann ich am einfachsten diese Tasten abfragen? (Ich hab irgendwo mal gelesen, dass dies mit getch geht.)
    Ich will auch kein portierbares Programm schreiben...
    (Aber, wenn es eine portierbare Lösung gibt, würde ich sie natürlich auch gerne wissen.)



  • hier was dazu in der konsolenfaq
    Einlesen von Pfeiltasten, F-Tasten und Tastenkombinationen

    und diese lösung (weitere codes findest du im link oben) geht für djgpp und studio..

    int main(){
        unsigned char chr;
    
    do
        {
        chr=getch();        //1.
            printf("%i",chr);
            if ((chr==224) || (chr==0))
            {
                chr=getch();   //2.
                printf("%i",chr);
    
                switch(chr)
                {
    
                case 13:
                    printf("go");
                        break;
                    case 75:                            
                        printf("<-");
                        break;
    
                    case 77:                           
                        printf("->");
    
                        break;
    
                    case 83:                            
                        printf("ENTF");
                        break;
    
                    case 82:                            
                        printf("EINF");
                        break;
    
                    case 80:                           
                        printf("pfeil nach unten");
    
                        break;
                    case 79:  
                        printf("ENDE");                           
    
                    break;
                    case 72:  
                        printf("pfeil nach oben");                           
    
                    break;
                }
            }
        }while(true);
        return 0;
    }
    

    aber null standard 🙂



  • Steht alles genauestens in der Konsolen-FAQ - thread closed.

    MfG SideWinder


Anmelden zum Antworten