Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » fehler in programm den ich nicht finde

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.06.2014, 21:12 Uhr
banana



guten abend liebe community...
ich bin recht neu in der programmier welt und lerne gerade mit c++ zu programmieren...
habe schon ein paar mini programme gemacht und versuche gerade ein zahlen raten spiel zu programieren... leider habe ich ein fehler in dem spiel gemacht kann ihn aber net finden.... ich weiss das der fehler in der ersten if anweisung ist weil das programm aber der hälfte der anweisung abschmiert... hier ist der code:

C++:
#include<iostream>


using namespace std;
int main()
{
    int Spieler;
    int Zahl = 2;
    int  zZahl;
    char Leave;
    zZahl = time_t <= 10;
    
    cout << "Zahlenraten" << endl << endl << "Das Spielprinzip ist simpel: Schwierigkeitsstufe waehlen und die zufaellig generierte Zahl Erraten"<< endl << endl;
    cout << "Enter druecken" << endl;
    getchar();
    

    cout << "Wie viele Spieler?" << endl << endl;
    cout << "1 Spieler" << endl << endl << "2 Spieler" << endl << endl << "Bitte mit 1 oder 2 Antworten. " << endl;
    cin >> Spieler;
    //anfang der if anweisung
    if (Spieler >= Zahl)
    {
        cout << "2 Spieler wurden gewaehlt." << " Spiel startet nun" << endl << "Abwechselnd Zahlen Raten bitte" << endl;
        cout << "Zahl wurde generiert" << endl;
        cout << "Spiel beginnt" << "Bitte nur Zahlen Eingeben" << endl;
        cout << "Enter drücken" << endl;
        getchar();

    }
    //anfang der else anweisung
    else
    {
        cout << "1 Spieler wurde gewaehlt." << " Spiel startet nun" << endl;
        cout << "Zahl wurde generiert" << endl;
        cout << "Spiel beginnt. Bitte nur Zahlen Eingeben" << endl;
        cout << "Enter drücken" << endl;
        getchar();

    }
    // Ende der If anweisung
    cout << "Zahlen Raten" << endl;
    cin >> zZahl;
    // Anfang der If Anweisung
    if (zZahl = true)
    {
        cout << "Glueckwunsch !! Richtige Zahl erraten. Bitte Enter drücken für ein Neues Spiel oder *V* Eingeben um zu verlassen." << endl;
        cin >> Leave;
        if (Leave = V)
        {
            return 0;
        }
        else
        {
            return main;
        }
        //ende der if anweisung
    }
        
}


wäre nett wenn ihr mir helfen könntet den fehler zu finden...
danke im vorraus
lg banana
---
Edit: cpp-Tags eingefügt.

Dieser Post wurde am 26.06.2014 um 21:58 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.06.2014, 23:03 Uhr
Hans
Library Walker
(Operator)


Hi,

Du hast da ja ein paar sehr interessante Konstrukte in dem Code, so dass ich mich gerad frage, welcher Compiler das überhaupt übersetzt? Der Reihe nach:

C++:
zZahl = time_t <= 10;

Dazu meint Visual C++:

Zitat:

error C2275: 'time_t': Ungültige Verwendung dieses Typs als Ausdruck


time_t ist keine Funktion sondern ein Datentyp. Und diesen Datentyp kann man nicht überprüfen, sondern nur Variblen dieses Typs. Ich vermute, Du willst an der Stelle die Zufallszahl bestimmen, die man dann erraten soll, aber das geht so nicht, sondern dafür brauchst Du die Funktionen rand() und srand().

Dann wäre da diese Zeile:

C++:
  if (Leave = V)

Die enthält gleich 2 Fehler. Der erste ist, dass die Variable V nicht deklariert ist, und der zweite ist, dass da Leave = V steht. Das ist kein Vergleich, sondern eine Zuweisung. Korrekt müsste es Leave == V heissen, also 2 Gleichheitszeichen hintereinander. Diesen Fehler hast Du übrigens 4 Zeilen höher schon mal drin:

C++:
if (zZahl = true)

Da fehlt wieder das zweite Gleichheitszeichen. Ausserdem steckt da noch ein logischer Fehler drin:
Du Vergleichst eine Zahl mit dem Wahrheitswert "true"; das geht so nicht. Du musst zZahl mit einem Wert vergleichn, der vom Spieler eingegeben wird. So wie Du es im Moment im Code stehen hast, wird zZahl durch die Benutzereingabe auch noch überschrieben, d.h. Du hast gar keine Möglichkeit zu vergleichen, ob die Zufallszahl mit der Eingabe des Spielers überein stimmt.

Und zuletzt noch:

C++:
return main;

Das geht auch nicht, da "main" ein reserviertes Wort der Sprache C++ ist. Der Name main ist ausschliesslich für die Funktion des Programms vorgesehen, mit der es startet. Hinter der return-Anweisung muss jedoch ein Ausdruck (oder eine Konstante) stehen, der einen int-Wert als Ergebnis hat. Ich vermute, Du willst an dieser Stelle, das die Ausführung des Programms wieder von vorne anfängt. Wenn ja, dann geht das entweder mit goto, oder Du packst das ganze in einer Schleife.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 26.06.2014 um 23:16 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.06.2014, 12:27 Uhr
banana



danke dir hans...
somit fällt mir gerade auf dass ich ein bisschen (viel) mehr lernen muss denn mir waren so ein paar dinge nicht bekanntt die du in deiner antwort vermerkt hast ^^ jetzt werde ich erstmal meine fehler korrigieren und danach noch ein bisschen tutorials gucken und mein c++ buch lesen ... danke dir nochmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.06.2014, 13:35 Uhr
Hans
Library Walker
(Operator)


Hi,
welches C++ Buch hast du denn, wenn man fragen darf?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: