Zum Inhalt springen

Ich Suche den ASCII - Code für die Pfeiltasten


Empfohlene Beiträge

Geschrieben

Kann mir jemand diese bitte veraten denn ich finde nirgends welche um die Pfeiltasten zu Programmieren. Ich brauche Sie ganz dringends.;) ;) :(

Geschrieben

Hallo Woodstock,

ich Programmier gerade ein Labyrinth aber um das Meneke zu bewegen muß ich den ASCII - Code der Pfeiltasten haben, weil sonst geht es nicht. Ich hoffe du verstehst mich jetzt. Und kannst mir vielleicht helfen.

Geschrieben

Hoi Lupo :)

Hmmm du hast aber komische Probleme.......das steht doch eigentlich in jeder ASCII Tabelle drin.....naja nicht in jeder stehst dann auch octal, so wie du das wahrscheinlich brauchst.

Gehts dir nur um die Werte, oder auch um die technische Umsetzung?

....soweit ich das nu im Kopf habe is z.b. pfeil hoch 120 und pfeil runter 110, kann aber auch umgekehrt sein....mag jetzt nich nachgucken :)

Vielleicht hilft dir das schon was, ansonsten meld dich halt nochma.

Goos

Geschrieben

och naja...das kannst so nich sagen...hab gerad auch ma geschaut.

So wie sichs anhoert handelt sichs ja um ne Consolenanwendung.

und ich haette da ein Pfeil-runter durch ne Abfrage auf '\120' ermittelt.

Is halt alles nur eine Frage des passenden Zahlensystems :D :D :D

Goos

Geschrieben

probiers doch einfach aus.

beispiel:

main ()

{

for (;;)

{

while (!_kbhit());

cout << _getch();

}

}

dann sollten alle eingegebene tasten ausgegeben werden. pfeiltasten drücken und der code wird die erscheinene.

Geschrieben

Hoi Doc

hmmm bin jetzt aber sehr verwirrt....ansich muss ich dir ja rechtegeben, dass ich Bullshit erzaehlt hab und 120 eher P, aber sicher keine Pfeiltaste is. Drauf gekommen bin ich ja gestern abend durch nen alten Code von mir in dem das so stand.

Ich muss jetzt heut abend wirklich nochmal schaun, was ich da so gelesen hab......denn funktioniert hats damals alles.

Gott nehme mir meine Blindheit :D

Goos

Geschrieben

@maddin:

Dein Code funktioniert jedenfalls bei mir nicht (bei den Anderen ja vielleicht). Zum einen ist die for Schleife total unnütz, und für die Pfeiltasten gibt er nur den Code für Sonderzeichen aus (ist bei mir 224). Aber dabei ist es ihm wurscht ob nun nach oben, nach unten oder z.B. auch Einfügen oder Ende gedrückt wird.

@all

Also, ich habe in meinem Buch folgendes dazu gefunden:

Originaltext aus meinem Buch

Um herauszufinden, ob der Anwender eine Pfeiltaste gedrückt hat, nutzt inside (ist eine Funktion um die es da gerade geht) eine spezielle Eigenschaft von getch , die darin besteht, dass getch beim Drücken einer Funktions- oder Pfeiltaste nicht wie bei anderen (gewöhnlichen) Tasten einen Zeichencode zurückliefert, sondern den Wert 0 (da diese Sondertaste nicht Bestandteil des Zeichensatzes sind und einen solchen Zeichencode nicht besitzen). Der Wert 0 alleine lässt allerdings nur erkennen, dass eine Sondertaste gedrückt wurde. Um auch bestimmen zu können, welche Sondetaste gedrückt wurde, muss man außerdem den so genannten Scancode heranziehen, einen ganzzahligen Wert, der für jede Taste existiert und dise eindeutig identifiziert. Die Scancodes von Funktions- und Cursortasten lassen sich ermittel, indem man die Funktion getch zweimal hintereinander aufruft, wobei der erste Aufruf den Wert 0 liefert und der zweite den Scnacode der betreffenden Taste.

Mit

void main () 
{
int c = getch();
if(c)
printf("Das Zeichen war: %c", c)
else
{
c = getch();
printf("Sondertaste mit Scnacode %d", c);
}
} [/PHP]

wird entweder das von [i]getch[/i] gelesene Zeichen ausgegeben oder - falls eine Sondertaste gedrückt wurde - nach dem zweiten Aufruf von [i]getch[/i] deren Scancode. Die Scancodes für die Pfeiltasten sin:

72 -> Pfeil nach oben

75 -> Pfeil nach links

77 -> Pfeil nach rechts

80 -> Pfeil nach unten

Ich hoffe das klappt bei Euch, kann es nicht prüfen, weil ich den ANSI-Code und nicht den ASCII-Code geladen habe.

Bine

Geschrieben

hihihi...also wenn ich jetzt mal auf Woodstocks Pfeil runter bezugnehm, dann is meine 120 fuer Pfeil runter gar nich so vekehrt denk ich.

Sollte doch hinhauen, dass 120 (oktal) = 80 (dezimal).

Oder hab ich mich mal wieder verrechnet? :D :D :D

Goos

Geschrieben

Na wie schon weiter oben mal geschrieben hab ich das mit dem 120 irgendwie im kopf und ich hab das dann auch gestern abend auch noch in nem alten Code von mir gefunden.....war son Konsolen Tetris und da brauch man die Pfeiltasten ja......naja deshalb geh ich halt mal davon aus, dass es funzt :)

.....die GROSSE FRAGE hier is wahrscheinlich eher, ob sich Lupo2 ueberhaupt noch dafuer interessiert *g* :D

Goos

Geschrieben

Klar kann man nicht immer nachschaun, aber die meisten tuns zumindest am Tag nachdem sie was gefragt hatten.....ich dachte mir nur, dass er vielleicht schon laengst ne Lösung gefunden hat oder so :)

Goos

Geschrieben

Hey Leute,

Danke für die vielen antworten aber die Lösung habe ich leider bisher nicht gefunden aber das mit dem Tetris Spiel wegen denn Pfeiltasten da habe ich schon Interresse schreibt dochmal zurück. Und ich war in letzter Zeit im Urlaub und kam nicht ins Internet sonst hätte ich es öfter mal abgefragt. Ich bin euch echt dankbar für diese Hilfe aber irgendwie will es bei mir nicht funktionieren.

Habt ihr vielleicht auch noch andere Vorschläge.:rolleyes: :rolleyes: :rolleyes: :confused: :confused: :confused:

Geschrieben

Also meine Loesung so wie ich das mal realisiert hatte hat zumindest bei mir mal gefunzt :)

Poste doch mal n Stueckl von deinem Code in dem du das mit der Abfrage versuchst...vielleicht laesst sichs irgendwie hinbiegen

Goos

  • 20 Jahre später...
Geschrieben

Hallo zusammen,

ich habe dieses Programm probiert. Klappt leider nicht:

#include <iostream>

#define LINKS 75

#define RECHTS 77

#define HOCH 72

#define RUNTER 80


 

int main()

{

char steuerung;

 

std::cout << "Geben Sie Cursor links, rechts, oben oder unten ein: ";

std::cin >> steuerung;

 

std::cout << "Die Steuerung war: " << steuerung << std::endl;

 

return 0;

}

 

 

cout << _getch(); funktioniert leider auch nicht. Muß ich da noch was anderes includieren?

 

LG Heiko
 

Geschrieben

wenn das unter einem unixoden OS laufen soll musst mit mit Terminfo bzw Termcap arbeiten. Da werden Sondertasten gemäss Terminalbeschreibung auf Escape-Sequenzen der Eingabegeräte gemappt. Vermutlich arbeitest Du im Code dann mit den symbolischen Tasten ;)

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...