Tastatureingabe ohne stopp
-
Hallo liebe com,
ich suche einen weg, mit der dosbox ein programm zu schreiben.
Das die ganze zeit läuft ( ohne stopp ) und wenn zum beispiel a gedrückt wird, soll dann ein event sozusagen passieren.
ZB:while(true)
{cout << "hallo" << endl;
if( KEY_A_GEDRÜCKT )
{
cout << "a" << endl;
}}
Das heißt, er soll die ganze zeit hallo spammen und wenn der user a drückt soll er einmal "a" in das fenster schrieben und wieder weiter hallo spammen
MFG
-
Du programmierst unter Windows? "Dosbox" impliziert das irgendwie. Das Ding heißt übrigens Konsole und ist kein DOS, auch wenn's so aussieht. Dann könntest du windows.h inkludieren und
GetAsyncKeyStateverwenden.kbhitginge auch noch (ebenfalls kein Standard-C++, VC++ bietet's aber inconio.han).
-
kannst du mir bitte ein beispiel geben mit der conio,h .. ?
oder ca. so ?
if(kbhit())
{
char c = getch();
switch(c)
{}
}MFG
-
lilbeat schrieb:
kannst du mir bitte ein beispiel geben mit der conio,h .. ?
MFGSuper-simples Beispiel:
http://www.cprogramming.com/fod/kbhit.html
Das kannst du ja ganz einfach so umbauen, dass die Ausgabe deiner Wahl in der Schleife gemacht wird. Und wenn du dann auch noch wissen willst, welche Taste gedrückt wurde, kannst du im
if-Block (also wennkbhitwas ungleich 0 zurückgibt) mitgetcharbeiten.
-
#include <conio.h> #include <iostream> int main() { for(;;) if(kbhit()) std::cout << static_cast<char>(getch()) << '\n'; }
-
danke es funktioniert
-
#include <conio.h> #include <iostream> int main() { for(const char ue('\201');;) if(kbhit()) switch(char a = getch()) { case 'a': case 'b': std::cout << "Sie dr" << ue << "ckten '" << a << "'!!\n";break; default: std::cout << "Sie dr" << ue << "ckten eine andere Taste als 'a' oder 'b'!!\n"; } }Jetzt im Switch-Statement, damit du noch alles andere spezifisch behandeln kannst...
Für PI mit Konstanten für Umlaute
-
Wie hässlich.
-
314159265358979 schrieb:
Wie hässlich.
Ja, ich weiß! Hast du seine Hose gesehen? Limongrün!
so schöner?
int main() { const char ue('\201'); for(char a;;) if(kbhit()) switch(a = getch()) { case 'a': case 'b': std::cout << "Sie dr"<<ue<<"ckten '"<<a<<"'!!\n";break; default std::cout << "Sie dr"<<ue<<"ckten eine andere Taste als 'a' oder 'b'!!\n"; } }