Ich habe ein Problem mit der Erkennung von Pfeiltasten in meiner C++ - Konsolenanwendung festgestellt. Ich habe alles versucht, das ich gefunden habe, sowohl hier als auch auf anderen Tutorial-Sites, aber alle von ihnen geben Sie mir die gleiche Sache, wenn ich auf den Pfeil drücken:C++ Erkennen, wenn der Benutzer die Pfeiltaste drückt
Process returned 0 <0x0> execution time : 2.249 s
Press any key to continue.
Hier sind alle Methoden der Taste drücken, dass ich Erkennung habe es versucht, alle auf die gleiche Weise enden. Dies sind die einzigen zwei, die in meinem Code übrig sind, die anderen, die ich versucht habe zu löschen, anstatt sie zu kommentieren.
Methode eins:
c1 = getch();
if(c1 == 0)
{
c2 = getch();
if(c2 == 72) {cout << endl << "Up Arrow" << endl;}
else if(c2 == 80) {cout << endl << "Down Arrow" << endl;}
else{cout << endl << "Incorrect Input" << endl;}
}
Methode zwei:
switch(getch()) {
case 65:
cout << endl << "Up" << endl;//key up
break;
case 66:
cout << endl << "Down" << endl; // key down
break;
case 67:
cout << endl << "Right" << endl; // key right
break;
case 68:
cout << endl << "Left" << endl; // key left
break;
}
Gibt es einen Fehler in meinem Code, der mich zu meinem Haupt-Methode zurück gemacht, oder hat es einen Code überspringen? Gibt es einen schnelleren Weg, dies zu tun? Ich bin fast 100% sicher, dass mein anderer Code nichts mit diesem Problem zu tun hat, weil ich den Code isoliert habe, um von jedem anderen Aspekt des Programms abhängig zu sein, und ich hatte das gleiche Problem.
Wieder versuchte ich jede Methode, die Pfeiltaste zu drücken, die ich finden konnte, und ich bekomme immer das gleiche Problem. Wenn es darauf ankommt, bin ich auf einem Windows 8 Samsung ATIV Smart PC und benutze das Tastaturdock.
Vielen Dank im Voraus für jede Hilfe.
kompilieren, wenn Sie arbeiten Wo haben Sie diese Zeichencodes bekommen? Sie sind nur Großbuchstaben, versuchen Sie zum Beispiel, H im ersten Beispiel und A in der zweiten und sehen, was passiert. – PeterJ
@PeterJ, Es ist ein Vorteil von 'getch'. 'ReadConsoleInput' wäre jedoch eine geeignetere Alternative. – chris
@chris, wo könnte ich ein gutes Beispiel dafür finden? –