Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

c++ Mastermind





Frage

Hi, ich versuche gerade ein Mastermind Programm zu programmieren. Die Probleme, die aufgetaucht sind, und sich nicht lösen wollen sind, das er jedesmal motzt "getline undeclared (first use this funktion)" und es vergleicht meine Zahlenwerte nicht auf Zeile 105. Hoffe auf Baldige Hilfe. MFG [code] //Mastermind #include <iostream> #include <string> #include <stdlib.h> #include <time.h> #include <fstream> #include "main.h" using namespace std; ofstream output("output.txt", ios::out); int main() { //Zufallszahl srand((unsigned)time(NULL)); int iMenue = 0; //Schlaufe/Programm läuft bis User Beendet/eine 2 eingibt do { iMenue = Menue(iMenue); switch(iMenue) { case 1: Spiel(); break; case 2: break; default: cout << " " << endl; cout << "Gibts nich!" << endl; cout << " " << endl; system ("pause"); break; } }while(iMenue != 2); system("PAUSE"); return 0; } int Menue(int &iMenue) { //Willkommensmenue system("cls"); cout << "+++++++++++++++++++++++++" << endl; cout << "Willkommen bei Mastermind" << endl; cout << "+++++++++++++++++++++++++" << endl; cout << " " << endl; cout << " " << endl; cout << "duecken sie:" << endl; cout << "1 fuer neues Spiel" << endl; cout << "2 zum Beenden" << endl; cin >> iMenue; return iMenue; } int Spiel() { int iZufall[MAX_ZUZAHLEN]; Genzuzahl(&iZufall[MAX_ZUZAHLEN]); //Ermittlung Zufallszahlen int iZahl[5]; int iRichtig = 0; //Ausgabe des bereits gespielten, falls vorhanden do { system("cls"); char zeile[50]; if(output.good()) { while(output.good()) { output.getline(zeile, 50);//Reklamiert bei .getline cout << zeile << endl; } } //Eingabe der Werte cout << "Geben Sie ihre 1. Zahl ein" << endl; cin >> iZahl[1]; cout << "Geben Sie ihre 2. Zahl ein" << endl; cin >> iZahl[2]; cout << "Geben Sie ihre 3. Zahl ein" << endl; cin >> iZahl[3]; cout << "Geben Sie ihre 4. Zahl ein" << endl; cin >> iZahl[4]; cout << "Geben Sie ihre 5. Zahl ein" << endl; cin >> iZahl[5]; //Vergleich Eingabe - Zufallszahlen for(int x = 1; x < MAX_ZUZAHLEN+1;x++) { if(iZahl[x] == iZufall[x]) { iRichtig = iRichtig+1; } } //Schreiben in die Datei um das gespielte zu speichern output << iZahl[1] << " " << iZahl[2] << " " << iZahl[3] << " " << iZahl[4] << " " << iZahl[5] << " " << "Richtig = " << iRichtig << endl; }while(iRichtig!=5);//Alle Eingaben richtig beenden cout << "Sie haben Gewonnen" << endl; return 0; } int Genzuzahl(int iZufall[MAX_ZUZAHLEN]) { //löschen die Zufallszahlen und erneutes ermitteln for(int y = 0; y < MAX_ZUZAHLEN;y++) { iZufall[y] = 0; } for(int x = 0; x < MAX_ZUZAHLEN;x++) { iZufall[x] = (rand() % MAX_ZUZAHLEN)+1; } for(int z = 0; z < MAX_ZUZAHLEN;z++) { //cout << iZufall[z] << endl; output << iZufall[z] << " "; } output << " " << endl; system("PAUSE"); return iZufall[MAX_ZUZAHLEN]; } [/code]

Antwort 1 von disco

moin

sorry falls ich mist erzähle, bin total raus aus c++.

aber deine methodenkopf
Zitat:
int Genzuzahl(int iZufall[MAX_ZUZAHLEN])


sieht schon komisch aus.

int Genzuzahl(int iZufall[[b]MAX_ZUZAHLEN])
du willst ein array empfangen und hast da noch die initialisierungslänge, ode was das sein soll drinn stehen. das versteh ich nicht.

und die methode rufste auch noch so auf:

int iZufall[MAX_ZUZAHLEN];
Genzuzahl(&iZufall[MAX_ZUZAHLEN]);

ich kann jetzt nur von java ausgehen, da ich wirklich nix mehr von c++ weiss, aber da kann sowas nich gehen.

du solltest dich nochmal mit arrays auseinandersetzen.

du musst das array mit einer gewisse nlänge initialisieren und dann einfach an die methoden übergeben. und nicht immerden initialisierungswert da reinschreiben. so übergibst du nicht das array sondern den wert, der an der position steht.
iZufall ist das array
iZufall[MAX_ZUZAHLEN] ist ein wert der an der position MAX_ZUZAHLEN des arrays steht.

g,
disco

PS:
das ist nur das erste was mir aufgefallen ist. den rest hab ich nicht angeguckt.

viel glück noch. jeder fängt mal an.

Antwort 2 von disco

da hatte sich nen eingeschlichen.

int Genzuzahl(int iZufall[MAX_ZUZAHLEN])
du willst ein array empfangen und hast da noch die initialisierungslänge, ode was das sein soll drinn stehen. das versteh ich nicht.

Antwort 3 von Das_Urmel

Mix der Includes - was soll das werden?
Welches C++ mag das sein?
tschö
Michael

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: