fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer '{' gefunden wurde



  • CStoll schrieb:

    Mein Vorschlag: Verwende eine vernüftige Code-Einrückung (oder eine IDE, die sowas automatisch macht), dann siehst du auch, welche Klammer an welcher Stelle wieder geschlossen wird.

    PS: Zeile 17 😃

    Ich verwende Visual C++ 2010 Express.



  • tbremer19 schrieb:

    Ich verwende Visual C++ 2010 Express.

    Ich hab' zwar noch nicht mit der Express gearbeitet, aber nach meinen Erfahrungen ist MSVC recht gut damit, den Code automatisch einzurücken.

    Ansonsten noch etwas konkreter: Wo endet die switch(chAuswahl)-Anweisung in deinem Programm?



  • switch endet nach dem letzten break.



  • Bist du dir da ganz sicher? Laut Syntax-Regeln von C++ endet die Verbund-Anweisung unter dem switch() mit der entsprechenden schließenden Klammer - und nach dem break gibt es keine schließende Klammer, damit gelten die getchar() und return-Anweisung auch noch als Teil des switch (und als toter Code).



  • Tach bin Programmier Anfänger und habe das selbe Problem. Hier ist der Code
    :

    //SteinScherePapier
    //
    #include<iostream>
    #include<ctime>
    
    using namespace std;
    
    //Funktionen
    void Game();
    
    int main() {
    
    	Game();
    
    	return 0;
    }
    
    void Game() {
    	//Veriabeln
    	int KIselction = 0, PLAYERselction = 0, limit = 3;
    	//RandomErschaffen
    	srand((unsigned)time(0));
    
    	for (int i = 0; i < 10; i++) {
    
    		//SpielerWahl
    		cout << "Was willst du 1.Stein, 2.Schere, 3.Papier?" << endl;
    		cin >> PLAYERselction;
    
    		//KiWahl
    		KIselction = (rand() % limit) + 1;
    
    		//
    		if (KIselction == PLAYERselction && PLAYERselction == 1) {
    			cout << "Unentschieden ihr beide habt Stein!" << endl;
    		}
    		else if (KIselction == PLAYERselction && PLAYERselction == 2) {
    			cout << "Unentschieden ihr beide habt Schere!" << endl;
    		}
    		else if (KIselction == PLAYERselction && PLAYERselction == 3) {
    			cout << "Unentschieden ihr beide habt Papier!" << endl;
    		}
    		else if (KIselction == 1 && PLAYERselction == 2) {
    			cout << "Die KI gewinnt. (Stein schlägt Schere)" << endl;
    		}
    		else if (KIselction == 2 && PLAYERselction == 3) {
    			cout << "Die KI gewinnt. (Schere schlägt Papier)" << endl;
    		}
    		else if (KIselction == 3 && PLAYERselction == 1) {
    			cout << "Die KI gewinnt. (Papier schlägt Stein )" << endl;
    		}
    		else if (KIselction == 1 && PLAYERselction == 3) {
    			cout << "Der Spieler gewinnt. (Papier schlägt Stein )" << endl;
    		}
    		else if (KIselction == 3 && PLAYERselction == 2) {
    			cout << "Der Spieler gewinnt. (Schere schlägt Papier)" << endl;
    		}
    		else if (KIselction == 2 && PLAYERselction == 1) {
    			cout << "Der Spieler gewinnt. (Stein schlägt Schere)" << endl;
    		}
    		else {
    			cout << "Fehler" << endl;
    		}
    	}
    

    Komisch ist das der Fehler in der 90 Zeile auftaucht wobei mein Code nur bis 64 geht....


  • Mod

    Fällt denn der Fehler nicht direkt auf, wenn du den Code hier postest? Da fehlt doch offensichtlich etwas und die Fehlermeldung sagt sogar, was fehlt.

    Allgemein gilt es als recht unhöflich, uralte Threads wieder zu beleben, bloß weil sie ein ähnliches Thema haben. Ein Leser kämpft sich dann erst durch mehrere Seiten irrelevantes Material um dann zu sehen, dass eine neue Frage gestellt wurde. Richtig wäre, den alten Thread zu lesen, ob er eine Lösung präsentiert (tut er in diesem Fall!) und falls dies nicht hilft, fragt man eben noch einmal. Eventuell mit Verweis auf den alten Thread, dass die dortige Lösung einem nicht weiter geholfen hat und warum.



  • Ja, du hast eine '}' vergessen. Warum lässt du die ganzen Klammern um die cout's nicht einfach weg? Dann wäre das auch nicht passiert.


  • Mod

    Bitmapper schrieb:

    Warum lässt du die ganzen Klammern um die cout's nicht einfach weg? Dann wäre das auch nicht passiert.

    Das ist schon ok die zu setzen.



  • SeppJ schrieb:

    Bitmapper schrieb:

    Warum lässt du die ganzen Klammern um die cout's nicht einfach weg? Dann wäre das auch nicht passiert.

    Das ist schon ok die zu setzen.

    Dann aber wenigstens die, die zusammengehören untereinander.


  • Mod

    Bitmapper schrieb:

    SeppJ schrieb:

    Bitmapper schrieb:

    Warum lässt du die ganzen Klammern um die cout's nicht einfach weg? Dann wäre das auch nicht passiert.

    Das ist schon ok die zu setzen.

    Dann aber wenigstens die, die zusammengehören untereinander.

    Jupp.


Anmelden zum Antworten