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.


Anmelden zum Antworten