Seite 1 von 1

Tastendruck überprüfen

Verfasst: Di Jun 07, 2011 7:54 pm
von naums
Hallihallöchen liebe Forumianer.

Ich möchte den Tastendruck des Nutzers (in der Konsole) überprüfen, also wenn er eine Taste drückt, will ich wissen, welche das ist, und zwar sofort, ohne, dass der Nutzer auf ENTER rumhämmern muss. Heißt: Nutzer drückt Taste --> Auf dem Bildschirm geht mein Programm 'Ape Shit' [AVGN]. Wie kann ich sowas realisieren?

Ich benutze zurzeit getchar(), muss das aber zweimal aufrufen, weil das sonst rumspackt, und die Eingabe einfach skippt, und fertsch ists. Ich will aber lesen was da steht. Genau das sollte verhindert werden.

MfG naums

Re: Tastendruck überprüfen

Verfasst: Di Jun 07, 2011 7:59 pm
von canlot
mit getch
schau dir denn Code an
war mal mein ursprüngliches Projekt :)

Code: Alles auswählen

#include <conio.h>
#include <stdio.h>
#include <windows.h>
#define hoch 72
#define links 75
#define rechts 77
#define runter 80
#define Escape 27

int main()
{
int a=15, b=15;
while(getch() != Escape)
{


int brett[20][20] = { 0 };

brett[a][b] = 1;

int i, j;

for(i=0; i<20; i++) {
 for(j=0; j<20; j++) {
  printf("%c ", brett[i][j]);
 }
 printf("\n");

}
printf("\n");
int vergleich = getch();
if (vergleich == hoch)
printf("hoch\n", a--);
else if (vergleich == links)
printf("links\n",b--);
else if (vergleich == rechts)
printf("rechts\n",b++);
else if(vergleich == runter)
printf("runter\n",a++);

}
return 0;
}

Re: Tastendruck überprüfen

Verfasst: Di Jun 07, 2011 8:07 pm
von naums
Ich sehe ein Windowsprojekt ^^. Benötigt getch die Windows.h? Wenn ja, ist das schonmal draußen, leider.

Re: Tastendruck überprüfen

Verfasst: Di Jun 07, 2011 8:16 pm
von canlot
Achja tut mir Leid für die Formatierung, der Code war auf meiner Seite gespeichert und hat seine formatierung verloren.
Achja die Tastencodes musst du suchen, ansonsten ist die Funktion einfach.
Hier ist ein weiterer Beispiel: http://openbook.galileocomputing.de/c_v ... 2ce037325d
Was man beachten muss->
ein Integerwert mit getch() speichern lassen und dann den Wert überprüfen

Code: Alles auswählen

int vergleich = getch();
    switch(vergleich)
    {
     case 27: return -1; break;
     case 72: printf("Pfeiltaste hoch\n"); break;
    }
RICHTIG

Code: Alles auswählen

   If(getch() == 27)
   return -1;
   elseif(getch() ==72)
  printf("Pfeiltaste hoch\n");
FALSCH
die Funktion wird mehrmals aufgerufen.

Re: Tastendruck überprüfen

Verfasst: Di Jun 07, 2011 10:40 pm
von canlot
naums hat geschrieben:Ich sehe ein Windowsprojekt ^^. Benötigt getch die Windows.h? Wenn ja, ist das schonmal draußen, leider.
Nö der Header ist conio.h
schau dir dieses Beispiel an:
http://openbook.galileocomputing.de/c_v ... 2ce037325d

Re: Tastendruck überprüfen

Verfasst: Mi Jun 08, 2011 9:48 pm
von canlot
eine Rückmeldung ob es bei dir funktioniert hat wäre nett :D