Hilfe für Anfänger
-
Ja er vermutet den Fehler in der Zeile 345. Dort ist das 'else' mit dem was nicht stimmen soll. Die geschweifte Klammer aus Zeile 141 war richtig so, sie kreist das 'switch' ein und ohne ergeben sich noch weitere Fehler. Aber beim Nachzählen der geöffneten und geschlossenen Klammern habe ich entdeckt, dass irgendwo eine geschlossene Klammer fehlt... die Frage ist wo
tut mir leid für die schlechte Programmstruktur und Programmerweise und dass ich dreisterweise den gantzen Quelltext hineinkopiert habe.
-
Dann kommentier mal dieses else und die geöffnete geschweifte klammer und eine der letzten geschlossenen klammern (am besten die letzte) aus. Dann wäre der Syntaktische Fehler behoben, allerdings glaube ich nicht, dass dann Dein Programm funktioniert da der letzte "block" dann völlig freisteht und Du ihn aber wahrscheinlich abhängig von einer Entscheidung ausführen willst.
Gut Schuß
VuuRWerK
-
Danke für eure Hilfe, aber ich habe dann hunderte von Fehlern im letzten Abschnitt. Irgendwo scheint eine gottverdammte klammer oder ein Semikolon zu fehlen nur ich weiß nicht wo...

-
google mal nach "funktion" und "refactoring" - dann könntest du deinen ganzen Wust etwas aufteilen und übersichtlicher gestalten, indem du z.B. Teile in Funktionen auslagerst.
-
Ich würde mal darauf tippen, dass in der Zeile 172 eine Klammer zu viel ist. Allerdings könnte das auch durch die schlechte Einrückung von oben doch richtig sein..
Also hopp ans Werk und deinen Code aufräumen! - Dann kann dir auch geholfen werden.
-
Mich würde im übrigen noch interessieren, was all diese globalen Variablen sollen. Die werden alle in der
mainüberdeckt und sind daher völlig unnötig.Irgendwie, wenn ich da WoW lese und den Code lese, erinnert mich das ein wenig an ein Skriptkiddie. Jemand der sich schnell ein paar Dinge zusammenkopiert hat, ohne gross Ahnung zu haben, was er da tut, also ohne richtig C++ gelernt zu haben. Ich hoffe, dass ich mit meiner Vermutung daneben liege

Grüssli
-
Habe das vereinzelte <else> in Zeile 344 gelöscht, ebenso die Wiedererzeugung bzw. Deklaration der fstream Objekte in den Zeilen 359, 362 sowie den paar weiteren case Labels darunter. Zumindest lässt sich das Ding dann z.B. mit (VC++ 2008 Express) kompilieren, habe allerdings keine Ahnung, was der Sinn des Programms sein soll und ob es dann auch nur annähernd tut, was es soll.
-
Dravere schrieb:
Mich würde im übrigen noch interessieren, was all diese globalen Variablen sollen. Die werden alle in der
mainüberdeckt und sind daher völlig unnötig.Irgendwie, wenn ich da WoW lese und den Code lese, erinnert mich das ein wenig an ein Skriptkiddie. Jemand der sich schnell ein paar Dinge zusammenkopiert hat, ohne gross Ahnung zu haben, was er da tut, also ohne richtig C++ gelernt zu haben. Ich hoffe, dass ich mit meiner Vermutung daneben liege

Grüssli
Ja tust du habe nämlichg mal einen C++ Grundkurs gehabt, indem wir genau diese Funktionen (bis auf das "goto") gelernt haben... Leider ist das 2 Jahre her. Das Alles so zusammenkopiert aussieht liegt daran, dass ich den Teil einmal geschrieben habe, und ihn mehrere male kopiert habe, da es im Wesentlichen immer das selbe ist. :p
Einige haben ja hier nach dem Sinn des Programms gefragt. Da das wahrscheinlich nicht mehr zu retten ist, was auch an dem unaufgeräumten Code liegt ^^, erklär ich mal, was es Ursprünglich tun sollte.
Zuerst liest er aus den Dateien, die im Ordner \\World of Warcraft\\Realms liegen und Name1/2/3/4/5/6 heissen ein. Als nächstes überprüft er im ersten If-Befehl, ob schon eine Datei, die V1.txt heisst existiert. In dieser Datei steht nämlich die IP des Realms, das letzte else soll zu diesem If Befehl gehören, und ausgeführt werden, wenn V1.txt existiert. Im If danach fragt er, ob man jetzt eine erstellen möchte. Das zugehörige else beendet das Programm, wenn man n bzw. irgend einen anderen Buchstaben eingibt. In den folgenden If-Befehlen fragt er ab, welche der V.txt Dateien schon existiert. Die zugehörigen else Befehle behandeln jeweils den Fall, wenn eine der Dateien nicht existiert. Wenn alle existieren, fordert das Programm einen dazu auf, eine bzw. alle Realms zu löschen. Im letzten fraglichsten else schreibe ich heute noch eine Funktion hinzu, die erst fragt, ob man eine neue Realmlist erstellen will, und dann zum V: springt, oder die Realmlist ändert und World of Warcraft startet.
So viel Text um eine kleine Sache ich hoffe das hilft...
PS: Meinen Code kriege ich selbst nicht mehr aufgeräumt 
Habe den Quelltext als .txt Datei auf rapidshare hochgeladen dann könnt ihr mal dran rum doktorn wenn euch das hilft... ich bin ratlos...
-
Mal ehrlich: Code zusammenzukopieren und ihn compilieren zu wollen ohne ihn zu verstehen ist Scriptkiddie-Gehabe.
Wenn du vor einiger Zeit einen C++-Kurs gehabt hast sollte es nicht allzu schwer fallen, das Wissen mittels eines Online-Tutorials wieder aufzufrisschen. Davon gibts genug. Dass du hier ankommst und von uns den zusammenkopierten Code korrigiert haben möchtest ist schon etwas dreist. Das Forum ist dafür gedacht um Leuten zu helfen die C++ lernen möchten, und nicht um Gratisdienstleistungen zu bringen für Leute die nicht bereit sind sich selbst etwas einzulesen.
Also statt unsere Zeit zu verschwenden schnapp dir bitte ein Buch oder Tutorial, arbeite es durch, bis du verstehst was der Code den du da hast tun sollte. Dann abeite den Code entsprechend um und wenn du dann noch Fragen hast helfen wir dir gerne weiter. Vorausgesetzt du zeigst uns dass du selbst etwas Einsatzbereitschaft für dein kleines Projekt hast.
Wenn du nicht vorhast dich eingehender mit C++ zu beschäftigen bist du hier komplett falsch, dann können dir höchstens die Coder in den entsprechenden WoW-Communities helfen.
-
Ich habe gesagt, dass ich die Codes selbst geschrieben habe, nur da sie so oft vorkommen, habe ich MEINEN SELBST GESCHRIEBENEN Code kopiert und ihn eingefügt, da er mehrere Male identisch vorkommt
Brauche aber immernoch Hilfe was die Fehler angeht...
-
Daran liegt ja ein Grund für die Fehler. Du kopierst Code. Und das ist ein Zeichen, dass du etwas falsch machst. Code muss grundsätzlich nie kopiert werden. (Vor allem nicht so, wie du das machst). Dafür gibt es Mechanismen, wie Funktionen und Schleifen. Und genau da solltest du ansetzen! - Überarbeite deinen Code mit den grundsätzlichen Kontrollmechanismen, dann wird das ganze lesbarer und die Fehler verschwinden automatisch, weil du 2 Klammern einfach auseinanderhalten kannst.