Eingabe erhalten



  • Moin allerseits ..
    Ich wollte mich an ein simples programm wenden welches eine abfrage startet
    wollen sie dies und dies machen ja oda nein ... und um dieses zu bestätigen
    oda nicht wollte ich die kürzel "y" und "n" benutzen...
    Jez brauche ich nur noch eine funktion die überprüft ob nun y gedrückt
    wurde oda nicht ...

    please HElp ^^

    MFG BearFist



  • GetAsyncKeyState

    oder

    WM_KEYDOWN / WM_KEYUP



  • Achso ...
    und wie bekomme ich dort die spezifische Taste also y ?

    Danke schonmal



  • ein blick in die MSDN verrät dir

    SHORT GetAsyncKeyState(
      int vKey   // virtual-key code
    );
    

    Google nach virtual-key code ..... bringt dir
    bzw. nach einiger suche

    wieder ein blick in die MSDN verrät dir

    WM_KEYDOWN / WM_KEYUP
    nVirtKey = (int) wParam;    // virtual-key code
    

    in der Nachrichtenschleife

    case WM_KEYDOWN: //o. WM_KEYUP
        switch((int) wParam)
        {
            case VK_Y:
                //Machwas
            break;
        }
    break;
    


  • Findest du das nicht bisschen pöhse, jemanden in den frühen Programmiertagen gleich von Microsoft abhängig zu machen? Vor allem bei so nem miniproblem?

    char ch;
    cin >> ch;
    if( ch == 'y' ) ...
    else if( ch == 'n' ) ...
    else ...
    

    Du kannst die Abfragen auch über ein switch vornehmen.

    Und schon ist es std-C++ und kein Windows und damit portabel 🙂



  • oder verwende getch...

    #ifdef WIN32 // Windows
    #include <conio.h>
    #else  // Linux
    #include <curses.h>
    #endif
    
    // ...
    int key = getch();  // bzw. _getch() bei Visual C++, der bringt ohne Underline eine Warung
    if (key == 'y') // yes
    {
    // ...
    }
    else if (key == 'n') // no
    {
    }
    else // wrong key
    {
    }
    

    Vorteil: du brauchst nicht auf "Enter" warten, getch gibt dir den Wert, sobald eine Taste gedrückt wurde.
    Außerdem wird das Zeichen nicht angezeigt.
    willst du es angezeigt haben, gibt es getche bzw. _getche (das e steht für echo)

    unter Linux ist noch darauf zu achten, dass man curses mit linken muss, also
    g++ -o blabla main.cpp -lcurses



  • #ifdef WIN32 // Windows
    #include <conio.h>
    #else // Linux
    #include <curses.h>
    #endif

    interessantes Weltbild 😃


Anmelden zum Antworten