Fragen zum C++ Buch (Kapitel 4....)



  • .filmor schrieb:

    Der Präprozessor ist ein einfacher Textprozessor, der stur tut, was man ihm sagt.

    aber nicht der von msvc6

    warning C4182: Die #include-Verschachtelungsebene ist 362 tief;

    offenbar hat der 'nen schleifendetektor (auch wenn der das ziemlich spät bemerkt) 😉



  • net schrieb:

    .filmor schrieb:

    Der Präprozessor ist ein einfacher Textprozessor, der stur tut, was man ihm sagt.

    aber nicht der von msvc6

    Och Mensch, muss man hier eigentlich immer wieder dazu schreiben, dass man den Standard meint? Und natürlich ist auch der VC6 Präprozessor ein Textprozessor.

    net schrieb:

    warning C4182: Die #include-Verschachtelungsebene ist 362 tief;

    offenbar hat der 'nen schleifendetektor (auch wenn der das ziemlich spät bemerkt) 😉

    Und? Er gibt auch offenbar nur eine Warnung aus (leicht an dem Präfix "warning" zu erkennen :p), dass heißt, er macht trotzdem stur, was man ihm gesagt hat, ist halt nur etwas gesprächiger. Außerdem ist das kein Schleifendetektor (das wäre etwas der Art: "charakter.hpp inkludiert sich selbst ohne eine Präprozessorkonstante zu definieren oder abzufragen") sondern sagt nur mal Bescheid, dass es ihm bald zu bunt wird. Er bricht nur aufgrund einer allgemeineren "Compiler-Grenze" ab.



  • Danke, filmor es hat funktioniert ^^
    sry, habe das gelesen aber nicht wirklich kapiert (deinen ersten post)
    bin erst auf Seite 116 und da kapier ich das noch net so 100%



  • Neues Problem beim Zahlenraten 😕

    Hier mal der Code:

    // C++ für Spielerprogrammierer
    // Listing 4.11
    // Zahlenraten
    //
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    #pragma comment (lib, "winm.lib")
    
    // Funktionsprototypen
    //
    int Spielen (int Level);
    int WaehleLevel (int Level);
    int TesteHighscore (int Punkte, int Highscore);
    void ZeigeInfos ();
    
    // Hauptprogramm
    //
    int main ()
    {
    	// Variablen
    	//
    	char Auswahl;		// Gewählter Menüpunkt
    	int Level = 5;		// Aktueller Level
    	int Highscore = 100;// Aktueller Highscore
    
    	// Zufallsgenerator initialisieren
    	srand (timeGetTime ());
    
    	// Verarbeitung des Menüs
    	do
    	{
    		// Menü ausgeben
    		//
    		cout << "Zahlenraten - Menue" << endl;
    		cout << "-------------------" << endl;
    		cout << "(N)eues Spiel starten" << endl;
    		cout << "(L)evel waehlen" << endl;
    		cout << "(H)ighscore anzeigen" << endl;
    		cout << "(I)nfo" << endl;
    		cout << "(B)eenden" << endl;
    
    		// Eingabe abfragen
    		cout << "Auswahl: ";
    		cin >> Auswahl;
    
    		// Je nach Eingabe verzweigen
    		switch (Auswahl)
    		{
    			// Neues Spiel starten?
    			case ('n'):
    			case ('N'):
    			{
    				// Spielen
    				int Punkte;
    				Punkte = Spielen (Level);
    
    				Highscore = TesteHighscore (Punkte, Highscore);
    
    			} break;
    
    			// Level wählen?
    			case ('l'):
    			case ('L'):
    			{
    				Level = WaehleLevel (Level);
    
    			} break;
    
    			// Highscore anzeigen?
    			case ('h'):
    			case ('H'):
    			{
    				cout << "Der aktuelle Highscore liegt bei ";
    				cout << "Highscore << " Punkten\n\n";
    
    			} break;
    
    			// Informationen anzeigen?
    			case ('i'):
    			case ('I'):
    			{
    				ZeigeInfos ();
    			} break;
    
    			// Spiel beenden?
    			case ('b'):
    			case ('B'):
    			{
    				cout << "Spiel beendet." << endl;
    
    			} break;
    
    			// Falsche Eingabe?
    			default;
    			{
    				cout << "Falsche Eingabe!\n\n";
    			}
    		}
    
    	} while (Auswahl != 'b' 66 Auswahl != 'B'); // Spiel beenden?
    
    	cout << "Bis zum nächsten Mal" << endl;
    
    	return 0;
    } // main
    
    // Zeige Infos
    //
    // Aufgabe: Informationen zum Spiel anzeigen
    //
    void ZeigeInfos ()
    {
    	cout << "Zahlenraten V1.0" << endl;
    	cout << "Beispiel aus \"C++ fuer Spieleprogrammierer\"";
    	cout yy "\n\n";
    } // Zeuge Infos
    
    // WaehleLevel
    //
    // Aufgabe: Neuen Level auswählen
    //
    int WaehleLevel (int Level)
    {
    	int NeuerLevel;
    
    	do
    	{
    		// Neuen Level wählen
    		cout << "Aktueller Level: " << Level << endl;
    		cout << "Neuer Level (1 - 10): ";
    		cin >> NeuerLevel;
    
    		// Ungültigen Level angewählt
    		if (NeuerLevel < 1 || NeuerLevel > 10)
    		{
    			// Fehlermeldung ausgeben
    			cout "Ungueltiger Level-Wert" << endl;
    		}
    
    	} while (NeuerLevel < 1 || NeuerLevel > 10);
    
    	// Gewählten Level zurückgeben
    	return NeuerLevel;
    } // Waehle Level
    
    // Spielen
    //
    // Aufgabe: Das eigentliche Spiel spielen
    //
    int Spielen (int Level)
    {
    	int Zufallszahl;		// Zufallszahl, die erraten werden muss
    	int Bereich = 0;		// Zahl, die der Spieler eingibt
    	int Bereich= Level*0;	// Bereich der Zufallszahl
    	int Versuche = 0;		// Anzahl der bisherigen Versuche
    	int Punkte = 0;			// Punktzahl
    
    	// Zufallszahl ermitteln
    	Zufallszahl = (rand()%Bereich)+1;
    
    	// Bereich ausgeben, in dem geraten wird
    	cout << "\nDie gesucht Zahl liegt zwischen 1 und ";
    	cout << Bereich << endl;
    
    	// So lange raten, bis die Zahl gefunden wurde
    	while (GerateneZahl != Zufallszahl)
    	{
    		cout << "Dein Tipp: ";
    		cin >> GerateneZahl;
    
    		Versuche++;
    
    		// Zahl hat nicht gestimmt, also Hinweis ausgeben
    		if (GerateneZahl < Zufallszahl)
    			cout << "Die gesuchte Zahl ist groesser" << endl;
    		if (GerateneZahl > Zufallszahl)
    			cout << "Die gesuchte Zahl ist kleiner" << endl;
    	}
    
    	// Die Zahl wurde erraten!
    	cout << "\nGeschafft ! " << endl;
    	cout << "Du hast die Zahl nach " << Versuche;
    	cout << "Versuchen erraten !\n\n";
    
    	// Punkte berechnen
    	// Desto weniger Versuche und desto höher das Level,
    	// je mehr Punkte werden vergeben
    	//
    	Punkte = Bereich - Versuche + 1;
    	Punkte *= Level;
    
    	// Wenn mehr Versuche benötigt wurden, als es Zahlen gibt,
    	// kann das Ergebnis negativ sein.
    	//
    	if (Punkte < 0)
    		Punkte = 0;
    
    	// Punkte ausgeben
    	cout << "Punkte: " << Punkte << endl;
    
    	// Punkte zurückgeben
    	return Punkte;
    } // Spielen
    
    // TesteHighscore
    //
    // Aufgabe: Prüfen, ob der Highscore geknackt wurde
    //
    int TesteHighscore (int Punkte, int Highscore)
    {
    	// Prüfen, ob der Highscore geknackt wurde
    	if (Punkte > Highscore)
    	{
    		cout "Glueckwunsch. Neuer Highscore !\n\n";
    		Highscore = Punkte;
    	}
    	else
    	{
    		cout << "Leider kein neuer Highscore\n\n;
    	}
    
    	// Highscore zurückgeben
    	return Highscore;
    } // TesteHighscore
    

    und hier mal die 23 Fehler:

    --------------------Konfiguration: Eigenes Spiel - Win32 Debug--------------------
    Kompilierung läuft...
    Zahlenraten.cpp
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2017: Ungueltige ESCAPE-Folge
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Punkten'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2017: Ungueltige ESCAPE-Folge
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2065: 'Punkten' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'n'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2001: Zeilenumbruch innerhalb einer Konstanten
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2065: 'n' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'n'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(77) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(79) : error C2143: Syntaxfehler : Fehlendes ';' vor '}'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(97) : error C2143: Syntaxfehler : Fehlendes ':' vor ';'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(103) : error C2143: Syntaxfehler : Fehlendes ')' vor 'constant'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(118) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'yy'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(118) : error C2065: 'yy' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(118) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2563: Listen der formalen Parameter stimmen nicht ueberein
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2568: '<<' : Aufloesung der Funktionsueberladung nicht moeglich
    könnte 'class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &__cdecl std::endl(class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &)' sein
    c:\programme\microsoft visual studio\vc98\include\ostream(377) : Siehe Deklaration von 'endl'
    oder 'class std::basic_ostream<char,struct std::char_traits<char> > &__cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)'
    c:\programme\microsoft visual studio\vc98\include\ostream(372) : Siehe Deklaration von 'endl'
    oder 'class std::basic_ostream<_E,_Tr> &__cdecl std::endl(class std::basic_ostream<_E,_Tr> &)'
    c:\programme\microsoft visual studio\vc98\include\ostream(367) : Siehe Deklaration von 'endl'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(157) : error C2374: 'Bereich' : Neudefinition; Mehrfachinitialisierung
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(156) : Siehe Deklaration von 'Bereich'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(169) : error C2065: 'GerateneZahl' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(217) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(222) : error C2001: Zeilenumbruch innerhalb einer Konstanten
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(223) : error C2143: Syntaxfehler : Fehlendes ';' vor '}'
    Fehler beim Ausführen von cl.exe.

    Eigenes Spiel.exe - 23 Fehler, 0 Warnung(en)

    Danke schon mal im voraus!
    Anakin



  • Schau dir mal das Listing oben an, dann siehst du, dass du einfach bei case ('H') in der Ausgabe hinter Highscore ein Anführungszeichen vergessen hast. Ein bisschen mehr Eigeninitiative bitte.



  • Cool danke jetzt sind es nur noch 9 Fehler 😞 ich kann sie einfach nicht finden

    // C++ für Spielerprogrammierer
    // Listing 4.11
    // Zahlenraten
    //
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    #pragma comment (lib, "winm.lib")
    
    // Funktionsprototypen
    //
    int Spielen (int Level);
    int WaehleLevel (int Level);
    int TesteHighscore (int Punkte, int Highscore);
    void ZeigeInfos ();
    
    // Hauptprogramm
    //
    int main ()
    {
    	// Variablen
    	//
    	char Auswahl;		// Gewählter Menüpunkt
    	int Level = 5;		// Aktueller Level
    	int Highscore = 100;// Aktueller Highscore
    
    	// Zufallsgenerator initialisieren
    	srand (timeGetTime ());
    
    	// Verarbeitung des Menüs
    	do
    	{
    		// Menü ausgeben
    		//
    		cout << "Zahlenraten - Menue" << endl;
    		cout << "-------------------" << endl;
    		cout << "(N)eues Spiel starten" << endl;
    		cout << "(L)evel waehlen" << endl;
    		cout << "(H)ighscore anzeigen" << endl;
    		cout << "(I)nfo" << endl;
    		cout << "(B)eenden" << endl;
    
    		// Eingabe abfragen
    		cout << "Auswahl: ";
    		cin >> Auswahl;
    
    		// Je nach Eingabe verzweigen
    		switch (Auswahl)
    		{
    			// Neues Spiel starten?
    			case ('n'):
    			case ('N'):
    			{
    				// Spielen
    				int Punkte;
    				Punkte = Spielen (Level);
    
    				Highscore = TesteHighscore (Punkte, Highscore);
    
    			} break;
    
    			// Level wählen?
    			case ('l'):
    			case ('L'):
    			{
    				Level = WaehleLevel (Level);
    
    			} break;
    
    			// Highscore anzeigen?
    			case ('h'):
    			case ('H'):
    			{
    				cout << "Der aktuelle Highscore liegt bei ";
    				cout << Highscore << " Punkten\n\n";
    
    			} break;
    
    			// Informationen anzeigen?
    			case ('i'):
    			case ('I'):
    			{
    				ZeigeInfos ();
    			} break;
    
    			// Spiel beenden?
    			case ('b'):
    			case ('B'):
    			{
    				cout << "Spiel beendet." << endl;
    
    			} break;
    
    			// Falsche Eingabe?
    			default;
    			{
    				cout << "Falsche Eingabe!\n\n";
    			}
    		}
    
    	} while (Auswahl != 'b' && Auswahl != 'B'); // Spiel beenden?
    
    	cout << "Bis zum nächsten Mal" << endl;
    
    	return 0;
    } // main
    
    // Zeige Infos
    //
    // Aufgabe: Informationen zum Spiel anzeigen
    //
    void ZeigeInfos ()
    {
    	cout << "Zahlenraten V1.0" << endl;
    	cout << "Beispiel aus \"C++ fuer Spieleprogrammierer\"";
    	cout << "\n\n";
    } // Zeige Infos
    
    // WaehleLevel
    //
    // Aufgabe: Neuen Level auswählen
    //
    int WaehleLevel (int Level)
    {
    	int NeuerLevel;
    
    	do
    	{
    		// Neuen Level wählen
    		cout << "Aktueller Level: " << Level << endl;
    		cout << "Neuer Level (1 - 10): ";
    		cin >> NeuerLevel;
    
    		// Ungültigen Level angewählt
    		if (NeuerLevel < 1 || NeuerLevel > 10)
    		{
    			// Fehlermeldung ausgeben
    			cout "Ungueltiger Level-Wert" << endl;
    		}
    
    	} while (NeuerLevel < 1 || NeuerLevel > 10);
    
    	// Gewählten Level zurückgeben
    	return NeuerLevel;
    } // Waehle Level
    
    // Spielen
    //
    // Aufgabe: Das eigentliche Spiel spielen
    //
    int Spielen (int Level)
    {
    	int Zufallszahl;		// Zufallszahl, die erraten werden muss
    	int Bereich = 0;		// Zahl, die der Spieler eingibt
    	int Bereich= Level*0;	// Bereich der Zufallszahl
    	int Versuche = 0;		// Anzahl der bisherigen Versuche
    	int Punkte = 0;			// Punktzahl
    
    	// Zufallszahl ermitteln
    	Zufallszahl = (rand()%Bereich)+1;
    
    	// Bereich ausgeben, in dem geraten wird
    	cout << "\nDie gesucht Zahl liegt zwischen 1 und ";
    	cout << Bereich << endl;
    
    	// So lange raten, bis die Zahl gefunden wurde
    	while (GerateneZahl != Zufallszahl)
    	{
    		cout << "Dein Tipp: ";
    		cin >> GerateneZahl;
    
    		Versuche++;
    
    		// Zahl hat nicht gestimmt, also Hinweis ausgeben
    		if (GerateneZahl < Zufallszahl)
    			cout << "Die gesuchte Zahl ist groesser" << endl;
    		if (GerateneZahl > Zufallszahl)
    			cout << "Die gesuchte Zahl ist kleiner" << endl;
    	}
    
    	// Die Zahl wurde erraten!
    	cout << "\nGeschafft ! " << endl;
    	cout << "Du hast die Zahl nach " << Versuche;
    	cout << "Versuchen erraten !\n\n";
    
    	// Punkte berechnen
    	// Desto weniger Versuche und desto höher das Level,
    	// je mehr Punkte werden vergeben
    	//
    	Punkte = Bereich - Versuche + 1;
    	Punkte *= Level;
    
    	// Wenn mehr Versuche benötigt wurden, als es Zahlen gibt,
    	// kann das Ergebnis negativ sein.
    	//
    	if (Punkte < 0)
    		Punkte = 0;
    
    	// Punkte ausgeben
    	cout << "Punkte: " << Punkte << endl;
    
    	// Punkte zurückgeben
    	return Punkte;
    } // Spielen
    
    // TesteHighscore
    //
    // Aufgabe: Prüfen, ob der Highscore geknackt wurde
    //
    int TesteHighscore (int Punkte, int Highscore)
    {
    	// Prüfen, ob der Highscore geknackt wurde
    	if (Punkte > Highscore)
    	{
    		cout "Glueckwunsch. Neuer Highscore !\n\n";
    		Highscore = Punkte;
    	}
    	else
    	{
    		cout << "Leider kein neuer Highscore\n\n;
    	}
    
    	// Highscore zurückgeben
    	return Highscore;
    } // TesteHighscore
    

    Hier die Fehler:

    --------------------Konfiguration: Eigenes Spiel - Win32 Debug--------------------
    Kompilierung läuft...
    Zahlenraten.cpp
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(97) : error C2143: Syntaxfehler : Fehlendes ':' vor ';'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2563: Listen der formalen Parameter stimmen nicht ueberein
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(140) : error C2568: '<<' : Aufloesung der Funktionsueberladung nicht moeglich
    könnte 'class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &__cdecl std::endl(class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &)' sein
    c:\programme\microsoft visual studio\vc98\include\ostream(377) : Siehe Deklaration von 'endl'
    oder 'class std::basic_ostream<char,struct std::char_traits<char> > &__cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)'
    c:\programme\microsoft visual studio\vc98\include\ostream(372) : Siehe Deklaration von 'endl'
    oder 'class std::basic_ostream<_E,_Tr> &__cdecl std::endl(class std::basic_ostream<_E,_Tr> &)'
    c:\programme\microsoft visual studio\vc98\include\ostream(367) : Siehe Deklaration von 'endl'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(157) : error C2374: 'Bereich' : Neudefinition; Mehrfachinitialisierung
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(156) : Siehe Deklaration von 'Bereich'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(169) : error C2065: 'GerateneZahl' : nichtdeklarierter Bezeichner
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(217) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(222) : error C2001: Zeilenumbruch innerhalb einer Konstanten
    C:\Programme\Microsoft Visual Studio\MyProjects\Listing 1_1\Eigenes Spiel\Zahlenraten.cpp(223) : error C2143: Syntaxfehler : Fehlendes ';' vor '}'
    Fehler beim Ausführen von cl.exe.

    Eigenes Spiel.exe - 9 Fehler, 0 Warnung(en)



  • Es muß default:, nicht default; heißen. Wenn Du auf die Fehlermeldung doppelt klickst gelangst Du übrigens in die Nähe das Fehlers. Und dann halt mal genau nachlesen!



  • ach stimmt hat ich ganz vergessen so nur noch 7 Fehler 😃



  • ich habe jetzt alle Fehler raus nur jetzt hab ich ein Problem und zwar wenn ich N oder n schreibe kommt eine Fehlermeldung und ich soll das mit den Senden machen aber ich natürlich Nicht Senden und dann steht da Press key to continue ist mir natürlich klar nur wieso funktioniert das Game jetzt nicht?



  • Benutz doch mal den Debugger. Eine kleine Anleitung dazu gibt's im Forum-Magazin.



  • Ich bin neu und kann im Magazin nichts über einen Debugger finden sry



  • Hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-120832.html
    Geht sogar speziell um VC6. Viel Spaß damit!



  • Also ich habe jetzt das mit Debug gemacht und
    da kam dann als ich gestartet habe Neus Spiel starten wollte wieder so eine Meldung und danach war im Quellcode ein Gelber Pfeil
    der in die Zeile

    Zufallszahl = (rand()%Bereich)+1;
    

    zeigte doch dort kann ich keinen Fehler finden den ich glaube nicht das das Buch einen Fehler hat (hab genau geschaut) ...



  • Schau doch mal genau nach. Die Variable Bereich wird doch zuvor erstellt und mit 0 initialisiert. Letztlich steht da also % 0. Also der Rest bezüglich einer Division durch 0. Da Division durch 0 nicht erlaubt ist stürzt das Programm ab.


Anmelden zum Antworten