Token aus cin einlesen
-
Hey Leute,
ich möchte was kleines mit Token ausprobieren. Dazu möchte ich eine Eingabe in Token zerlegen lassen. Also die sollte z.b. die cin eingabe "2+3" die Token 2,+ und 3 erzeugen. Wie gehe ich da vor? Später möchte ich die Token dann nacheinander abrufen und verwenden können.
Ich habe es mal so ausprobiert:
#include "../../../std_lib_facilities.h" #include "conio.h" class Token{ public: char kind; double value; Token(char ch) :kind(ch), value(0) {} Token(char ch, double val) :kind(ch), value(val) {} }; int main() { Token t = '0'; cin >> t; }Das akzepiert der Compiler aber nicht....
-
Dafür musst du folgende Funktion definieren:
std::istream& operator>>(std::istream& is, Token& t) { //todo: Einlesen in t return is; }
-
Danke, aber wie verwende ich diese Funktion dann um nach und nach die Token aus der Einagbe herrauszuholen?
-
Die Token sollen übrigens in einen Container (vector<Token>tok;) eingelesen werden. Wie funktioniert das genau, wenn es geht bitte ein kurzes Codebeispiel posten...Danke
-
Genau so, wie's oben steht: mit cin >> token
Kannst du natürlich auch in eine Schleife packen.