Token T = get token problem



  • Hallo ich lese gerade das Buch Einführung in die Programmierung mit C++. Allerdings habe ich das Problem, dass ich den Beispiel Code einfach nicht compilen kann, weil get token nirgendwo definiert wurde. Im Buch steht aber auch nirgendswo wie man es defnieren muss. Könnt ihr mir bitte helfen ?

    Erstmal der Beipsiel Code aus dem Buch

    #include <iostream>
    
    using namespace std;
    
    class Token
    {
    	char kind;
    	double value;
    	Token(char ch)
    	:kind(ch), value(0) {}
    	Token(char ch, double val)
    	:kind(ch), vlaue(val) {}
    };
    
    Token get_token();
    
    vecotr<Token> tok;
    
    int main()
    {
    	while (cin)
    		{
    			Token t=get_token();
    			tok.push_back(t);
    		}
    }
    

    Mich würde es außerdem interessieren, warum er den Vector weder in einer Funktion noch in einer Klasse geschrieben hat, sondern einfach so "mitten drin".


  • Mod

    Theroth schrieb:

    Hallo ich lese gerade das Buch Einführung in die Programmierung mit C++. Allerdings habe ich das Problem, dass ich den Beispiel Code einfach nicht compilen kann, weil get token nirgendwo definiert wurde. Im Buch steht aber auch nirgendswo wie man es defnieren muss. Könnt ihr mir bitte helfen ?

    Diese Frage ist ohne Kontext nicht beantwortbar. Sicher, dass das nicht im Buch steht? Ich kann mich dunkel da dran erinnern, dass so eine Frage schon einmal kam und sich irgendwie von selbst beantwortete. Wird das vielleicht in den nächsten Abschnitten nach und nach entwickelt?



  • einfach mal weiter lesen !!!



  • Token get_token()    // lies ein Token aus cin
    {     char ch;     cin >> ch;    // beachten Sie, dass >> Whitespace-Zeichen wie
    		                 // Leerzeichen, Zeilenumbruch, Tabulatorzeichen, etc. überspringt
          switch (ch) { 
    //noch kein   case ';':    // für "Ausgeben" 
    //noch kein   case 'q':    // für "Verlassen"
         case '(': case ')': case '+': case '-': case '*': case '/':
              return Token(ch);        // jedes Zeichen repräsentiert sich selbst
         case '.':
         case '0': case '1': case '2': case '3': case '4':
         case '5': case '6': case '7': case '8': case '9':
            {
                     cin.putback(ch);         // lege die Ziffer zurück in den Eingabestream
                    double val;
                    cin >> val;               // lies eine Gleitkommazahl
                     return Token('8',val);   // '8' repräsentiert "eine Zahl"
            }
         default:
            error("Ungueltiges Token");
         }
    }
    

    Den Quellcode kannst Du Dir beim Verlag runterladen.


Log in to reply