eingabe mit scanf überwachen
-
Hallo,
Bin grad dabei unter c laufen zu lernen.
Ich versuche aktuell einen Taschenrechner auf einer Konsole zu programmieren.
Bisher erfolgt die Eingabe über scanf. Ich versuche nu zu erreichen, daß das Programm automatisch erkennt, wann die Eingabe der ersten Zahl beendet ist. Dies soll mit dem eingeben des +,-,*,/ Zeichens geschehen.
Ist es möglich, daß Visual c++ während der eingabe erkennt, wann statt zahlen ein anderes Zeichen eingegeben wird , dieses Zeichen als operand speichert und die Eingabe beendet?
Für Idee und Vorschläge wäre ich sehr dankbar.
-
was du brauchst ist ein Parser.
Du liest den String ein und suchst dann nach dem ersten Mathematischen Zeichen. Alles davor (mal abgesehen von Leerzeichen, die Du rausfiltern müsstest) ist hoffentlich eine Zahl.
Dann gehst du zum nächsten mathematischen Zeichen, etc....Das Spielchen treibst Du bis zum Ende oder nem '=' oder was weiß ich
cYa
DjR
-
Hi,
einen parser braucht Du für so was nicht.
mit
int x,y; char z; scanf("%d%c%d",&x,&z,&y);
kannst Du eine aufgabe normal eintippen. Im z steht dann hat der Operator drin, den Du auswerten kannst.
grüße Con@n
-
was machst du wenn der user
a + b
eingibt, oder
a+ beinen parser schreiben ist zwar kompliziert, aber interessant!