• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Pfeiltasten & Co. in der Konsole [C++]

Status
Für weitere Antworten geschlossen.
C

Cryspy

Guest
Wie kann man ein Programm so machen, dass es auf drücken einer Pfeiltasten, Esc, Strg(Ctrl) und so was reagiert.

z.B.:

Ich drücke Pfeiltaste links -> nächste Zahl erscheint

Biddö mit Code, statt Verlinkung wenns geht. :roll:
 
Werbung:
Das hängt vom OS ab. Für Win kannste einfach getch() aus der conio.h verwenden. Unter Linux geht das mit der ncurses Library.


N43
 
getch steht für getchar,
damit kannst du beispielsweise mit einem if-else-konstrukt
auf die pfeiltaste reagieren und dann eventuell
eine variable inkrementieren (= um eins erhöhen).
 
Werbung:
ok....

Dankö. Das mit conio.h und getch, hab ich kapiert, aber wie der Code aussehen muss nicht so ganz, ich kann ja net schreiben
if(Pfeiltastelinks)
{
Anweisung
}

Bitte helfen! :cry:
 
Etwas in dieser Art:
Code:
int Taste = 0;
while(kbhit()) // Wenn noch keine Taste gedrückt wurde
{
  Taste = getch();
  if(Taste == 0) // Spezielle Taste wie Pfeile usw.
  {
    Taste = getch(); // Spezielle Taste einlesen
    // Drafu reagieren
  }
  else
  {
    // Ascii Taste wurde gedrückt...
  }
}
 
Hey,

Du brauchst erstmal die Keycodes der gewünschten Tasten.
das kannst du dir mit Folgende einfachem Programm selber rausfinden:
Code:
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
    int a;
    
    do{
    a = getch();
    cout << a << endl;
}while(true);
return 0;
}
( Mit devc++ Compilieren )
Funktioniert so: du drückst ne Taste und das teil sagt dir den Keycode.

In deinem eigenen Programm kannst du die dann zb so verwenden:
Code:
#include <conio.h>
#include <iostream>

using namespace std;

int main(){

int Pressed = getch();

while(Pressed != '27'){  // while pressed not escape
switch(Pressed){
case 97: cout << "\n'A' gedrückt";
}
}
return 0;
}

so kannst du dann deinen Code beispielsweise fortführen.
Ich würde dir aber anstelle von den Zahlwerten empfehlen den dingern per #define namen zu geben.
Du kannst glaub auch einfach die fertigen bezeichnungen nehmen, glaube ich.
Dann heisst das zb VK_RETURN für die Retruntaste. Ich bin mir aber nicht sicher ob das funktioniert.

Diese Methode funkioniert auf jeden Fall unter win


lg,
n1ob
 
Werbung:
Danke.Ich dachte schon ich wäre zu blöd, den Code richtig hinzuschreiben! :oops:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben