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 suchewieder ein blick in die MSDN verrät dir
WM_KEYDOWN / WM_KEYUP nVirtKey = (int) wParam; // virtual-key codein 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>
#endifinteressantes Weltbild
