Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

51

05.07.2010, 17:35

Tut mir leid. Hatte mich verlesen sry.

Jetzt komm ich zwar schon einbisschen weiter, aber dennoch:

mit cin.getline+cin.ignore:

Ich kann den 1. Namen eingeben (muss ihn aber ZWEIMAL mit Enter bestätigen). Dann kann ich das Team wählen ohne Probleme.
Wenn ich dann aber zum 2.Spieler übergehe kann ich den Namen eingeben doch beim Team kommt wieder derselbe Fehler, wie ganz am Anfang.


mit cin.getline + cin.sync:

Ich kann den 1.namen eingeben und auch dessen Team. Doch dann überspringt er die Namensabfrage der anderen Spieler und lässt mich nur noch deren Team auswählen :(
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

52

05.07.2010, 18:03

lass ignore bzw. sync ganz weg. dann darfst du halt erstmal keine falschen eingaben machen.
um die robustheit, die man zum üben sowieso nicht brauch, kannst du dich später kümmern.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

53

05.07.2010, 18:06

Es wird wieder beim 1.Spieler alles richtig gemacht doch ab dem 2. Spieler kann ich wieder ausschließlich das Team wählen ...
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

54

06.07.2010, 07:57

Ähm , nur mal so am Rande :).
Es liegt nicht an Windows 7 das dein Compiler Fehler spuckt ;).
Wollte ich nur mal so gesagt haben.

MfG Stazer

Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

55

06.07.2010, 12:49

Das war mein Gedanke beim eröffnungs-post. Dieses Thema ist allerdings unterdessen gegessen (ich sollte wirklich nen neuen Thread aufmachen)

Außerdem spuckt er ja keine Fehlermeldung aus. Er startet ganz normal das Programm. Nur im Programm hängt er sich halt dann auf :(
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

56

06.07.2010, 21:38

Also erstens möchte ich dir verraten, dass dein Weg das Problem zu lösen sehr umständlich ist, aber vielleicht wurde das im Buch noch nicht behandelt.

Versuch mal für jeden Spieler folgendes zu machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
//Spieler X (X steht für irgendeine zahl)
    cout << "Spieler X: " << endl;
    cout << "Name: ";
cin.ignore();
    cin.get (Spieler2.Name, 29); // Genau in der Reihenfolge!!!! Erst ignore() und dann get()
    
//Jetzt das Team:
    do
    {
        cout << "Bitte Team waehlen: ";
        cin >> SpielerX.Team;
    } while ((SpielerX.Team != 1) && (SpielerX.Team != 2));
Errare humanum est.. leider oder zum Glück?

Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

57

07.07.2010, 13:35

Die Lösung im Buch löst das ganze über den Laufindex i. Also mit "for (int i=0; i<4; i++)"

Den einzigen Unterschied den ich zu deinem Listing sehe ist, dass du die Position von cin.ignore() geändert hast. Jedenfalls funktioniert es damit auf einmal. Dafür ist ein anderer Fehler aufgetreten:

Wenn die Ausgabe der Daten startet, wird der erste Buchstabe des 1.Spielers geschluckt. D.h. dass aus "Mephisto" bei der Anzeige "ephisto" wird. Bei den anderen Spielern passt es jedoch oO
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

58

07.07.2010, 13:44

Wenn die Ausgabe der Daten startet, wird der erste Buchstabe des 1.Spielers geschluckt. D.h. dass aus "Mephisto" bei der Anzeige "ephisto" wird. Bei den anderen Spielern passt es jedoch oO


logisch. das kommt von dem ignore xD
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

59

07.07.2010, 14:01

oh. na dann ;)


Nochmal vielen Dank an alle Helfer für euer Engagement und eure Gedult ;)
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mephisto« (07.07.2010, 19:23)


Mephisto

Frischling

  • »Mephisto« ist der Autor dieses Themas

Beiträge: 57

Wohnort: Passau

Beruf: Schüler

  • Private Nachricht senden

60

13.08.2012, 15:34

o.O
Da kommt man nach 2 Jahren wieder mal bei seinem alten Thread vorbei und muss lesen, was für Noob-Fragen man gestellt hat.

Falls noch jemand von den "Alten" hier vorbeischaut: Vielen Dank für eure großartige Gedult!

BTW: Studiere unterdessen Angewandte Informatik in einem dualen Studium bei IBM :)
Das Leben ist ein scheiß Spiel,
Aber die GRAFIK ist geil!!!

Werbeanzeige