PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastatur abfragen



felix_do
29-12-2003, 15:28
Hallo,

für ein Spiel möchte ich in einer Schleife herausfragen, ob der Benutzer eine Taste gedrückt hat, und wenn ja, welche. also etwa so:

for(;;){
if (char c = Benutzer_hat_Tastegedrückt()){
break;
}
}

Ich suche die Lösung für c/c++, wer weiss wie das in Java geht kann sich aber auch melden..

guten Rutsch, Felix

peschmae
29-12-2003, 16:38
gui oder konsole?

Wenn konsole gibts da glaubich ein "getchar()" - Kommando

Hatten wir kürzlich mal irgendwo...

MfG Peschmä

Lin728
29-12-2003, 16:44
Ich kann dir so ungefähr sagen wies in Java geht:
(Code ist paktisch nur pseudocode, sind sicher fehler drinnen....)
[code]
BufferedReader inReader = new BufferedReader(InputStreamReader(System.in));

int ch;
while(ch = inReader.read())
{
if(ch==??)
break;
}

peschmae
29-12-2003, 17:43
scheint mir fast zu stimmen. Aber eher so:



int ch;
while(true)
{
try {
ch = inReader.read()
}
catch(IOException e) {}

if(ch==??)
break;
}


MfG Peschmä

felix_do
29-12-2003, 21:46
Danke. Aus nem anderen Forum hab ich eine c++ loesung bekommen mit getch()

f0rtex
29-12-2003, 23:10
Danke. Aus nem anderen Forum hab ich eine c++ loesung bekommen mit getch()


für die Zukunft: Falls du Lösungen hast, die nicht gepostet wurde, poste sie doch für Andere, weleche evtl. das gleiche Problem haben sollten ;-)

greets
f0rtex

Lin728
30-12-2003, 10:09
Schau besser in die ncurses lib, die haben dort ganz sicher so eine funktion (bin beim lesen der doku drübergestolpert, hab aber nicht daran gedacht). Die ist portabel und GNU :-)

felix_do
30-12-2003, 11:25
Du meinst doch das getch() aus conio.h?
Das ist schlecht, böse, grausam, furchtbar!
Und das schlimmste ist: Es ist nicht portabel!

Schau besser in die ncurses lib[...]


Aus dem c-plusplus.de Forum:



Hi, du kannst das so machen:



#include <conio.h>

bool b= true;

while(b)
{
if (kbhit())
{
cout << getch() << endl;
break;
}
}



Danke für den Tipp mit Ncurses, da ich die eh zum zeichnen benutze. Kennt jemand ne gute Doku für die Ncurses-Libs? Bitte nicht RTFM...

felix_do
30-12-2003, 23:32
Hab eben noch was gefunden:

http://hpcf.nersc.gov/vendor_docs/ibm/libs/basetrf2/getch.htm
http://hpcf.nersc.gov/vendor_docs/ibm/libs/basetrf2/nodelay.htm