getch() ersatz



  • hi
    ich möchte herrausfinden, was der User für eine Taste drückt (Konsolenanwendung), allerdings habe ich NICHT conio.h zur verfügung.

    Ich habe's so gemacht:

    taste=getchar();
    

    Allerdings wird der Gedrückte Buchstabe auch ausgegeben. Das möchte ich nciht. Ich möchte sowas wie "getch()" allerdings ohne conio.h einzubinden. gibts da was???



  • wenn du keine conio.h hast ,dann hörtsich das nach linux an.falls du getch unter linux brauchst ,musst du curses.h nehmen. khbit() ist auch sowas,
    allerdings glaub ich ,dass das auch in der conio.h ist(bin aber ned sicher).



  • Linux im "DOS und Win32-Konsole"-Forum? Kaum vorstellbar das jemand einen solch tragischen Religionsfehler macht - schonmal einen Buddhisten gesehen der unabsichtlich in die Kirche trabt? :p;)

    @RedEagle: windows.h zur Verfügung? Warum keine conio.h?

    MfG SideWinder



  • weil ich conioex.h eingebunden habe, (und haben muss).
    Da in conioex bereits conio.h eingebunde ist, macht der Compiler (oder Linker??) probleme. Leider kann ich deshalb keine conio.h - funktionen benutzen 😞

    ps.: windows.h habe ihc zur verfügung (und eingebunden 😉 )



  • Das mit der conio.h kapiere ich jetzt zwar nicht ganz aber egal.

    #include <windows.h>
    
    char mygetch ()
    {
        // Handle für den Konsolen-Input holen
        static HANDLE hin = GetStdHandle(STD_INPUT_HANDLE);
    
        // Richtigen Konsolemodus setzen (Keine Ausgabe von Eingabe, etc.)
        DWORD mode = 0;
        GetConsoleMode(hin,&mode);
        SetConsoleMode(hin,0);
    
        // Zeichen einlesen
        char ch = 0;
        DWORD read = 0;
        ReadConsole(hin,&ch,1,&read,0);
    
        // Konsolenmodus zurücksetzen
        SetConsoleMode(hin,mode);
    
        return ch;
    }
    

    MfG SideWinder



  • danke 👍


Anmelden zum Antworten