Eingabe lesen
-
guten abend allerseits!
folgende frage:
mein programm gibt beim start alle informationen über ein paar verwendete befehle aus. dann kommt eine eingabezeile, wos am anfang einfach heisst: "Befehl ausführen: " und dann kann man etwas eingeben, z.b. "Clear" oder "Home" oder "Goto xpos,ypos".
mein problem (eigentlich sinds 2) ist nun folgendes:1. ich möcht gern einlesen, was der benutzer eingegeben hat. da hab ich mir gedacht, ich man ne abfrage mit switch case, das geht aber nicht ("Switch-Ausdruck unzulässig mit char-variable").
was für einen variablentypen muss ich dann nehmen um die eingabe zu speichern?2. möchte ich natürlich, dass mein programm "weiss", welche zahlen der benutzer eingegeben hat, wenn z.b. der befehl "Goto xpos,ypos" eingegeben wurde. mann kann z.b. eingeben: "Goto 1, 8", dann will ich erstens wissen, dass der benutzer goto eingegeben hat, und zweitens will ich natürlich wissen, welche positionen er noch eingegeben hat.
ist sowas möglich? kann mir da jemand weiterhelfen? ich hab sehr lang rumprobiert, aber es klappt nicht so wie ich will.
grüsse und danke schon im voraus (wieso gibts beim voraus immer diese sternchen?)
hubertus
-
Zu 1) Mit switch kannst du aus Performance-Gründen nur Ganzzahlen vergleichen, keine Zeichenketten. Du kannst stattdessen aber eine if-Abfrage einbauen.
Zu 2) Du schaust zuerst nur einmal ob die Eingabe mit dem Befehl beginnt, ist das der Fall kannst du im if-Block die Werte auslesen (Fachbegriff: "Parsen"). Sowas könntest du dann zB mit sprintf() realisieren

Zu 3) Es gibt bei voraus keine Sternchen, es sei denn du schreibst es falsch (mit doppeltem r).
BTW: Dein Problem ist jetzt nicht unbedingt konsolenspezifisch, deswegen würde ich dich gerne in ein Fachforum verschieben. Meine Frage: Programmierst du jetzt C oder C++?
MfG SideWinder
-
@SideWinder:
danke für die auskunft.
kannst du mir evtl. ein beispiel geben, wie ich das parsen kann?und: ich programmiere mit ms VC++.

grüsse