[C++]Problem bei der Textverarveitung

ThorThor

Grünschnabel
Ich arbeite im Moment an einem Programm welches eine *.txt Datei in ein Textadventure umwandelt.
Habe auch schon gut was geschafft, nur knobel ich im Moment an einem mehr oder weniger großen Problem.

Ich versuche einen "Goto"-Befehl einzufügen aber es will nicht Funktionieren.
Meine bisherige Idee war:
Code:
else if(Befehl == "Goto")
{
    int ende = 0;
    string such;
    string befehle;

    while(Text[ c] != ']')
    {
        such += Text[ c];
        c++;
    }
    
    while(ende != 992)
    {
        if(Text[ c] == '[')
        {
            if(Befehl == "Here")
            {
                while(Text[ c] != ']')
                {
                    Begriff += Text[ c];
                    c++;
                }
                if(Begriff == such)
                {
                    ende = 992;
                }
            }
            else
            {
                Befehl = "";
                c++;
            }
        }
        else if(Text[ c] == '\n')
        {
            Befehl = "";
            c++;
        }
        else
        {
            Befehl += Text[ c];
        }
        c++;
    }
}

In der Text variabel ist die komplette *.txt Datei.
C gibt den Buchstaben an also der wievielte es ist.
Und Befehl speichert immer einen Begriff, welcher dem Programm sagt was mit den folgenden Buchstaben bzw Wörten oder Zeilen Passieren soll.

Ich schaffe es aber leider nicht das dieser "Goto"-Befehl funktioniert.
Habe auch schon einmal versucht das alles Ignoriert wird bis das '\n' Zeichen x mal vorkam.
 
Hi

was für eine Variable ist denn Befehl?
Und was passiert denn genau, wenn du schreibst "es funktioniert nicht"?
Tut das Programm beim Goto einfach nichts oder...?
 
Befehl ist ein string.
Die Goto Funktion arbeitet, aber es wird nach dem Begriff nicht aufgehoert, also es arbeitet nach dem ende der Datei noch weiter.
Das weis ich daher, das ich jedes von der Funktion überprüfte Zeichen ausgeben lassen habe und viel mehr ausgegeben wurde, was nicht in der Datei steht.
 
Du meinst das Ende des Strings, oder?
Du musst in den ganze Schleifen überprüfen, ob das Stringende ('\0') erreicht wird.
 
Gute Idee :D
Das mache ich, aber das ändert ja immer noch nicht das Problem, dass das Programm nicht bei dem Befehl "Here" weitermacht sondern bis zum ende der Datei alles ignoriert...
 
Zurück