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

1

22.07.2014, 16:35

Strukturen

Huhu, bin mal wieder auf ein komisches Problem gestoßen...

Die erste Struktur Gegner1 wird problemlos eingelesen und ausgegeben, bei der zweiten Gegner2 wird die Eingabe komplett übersprungen und demensprechend leere oder unsinnige Werte ausgegeben..
Kann mir jemand sagen wieso?
Der Compiler hüllt sich wieder komplett in schweigen.. evtl sollte ich Visual 2012 mal neu installieren?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[cpp]// Strukturen

#include <iostream> 
using namespace std;

int main ()
{
    struct S_Gegner
    {
        char Name[20];
        int Level;
        int Leben;

    };


    S_Gegner Gegner1;
    S_Gegner Gegner2;


    // Daten des ersten Spielers abfragen
    cout << "Name des ersten Gegners: ";
    cin.get (Gegner1.Name, 19);
    cout << endl;
    cout << "Leben: ";
    cin >> Gegner1.Leben;
    cout << endl;
    cout << "Level: ";
    cin >> Gegner1.Level;

    cout << endl << endl;

    //Daten des zweiten Gegners abfragen:
    cout << "Name des zweiten Gegners: ";
    cin.get (Gegner2.Name, 19);
    cout << endl;
    cout << "Leben: ";
    cin >> Gegner2.Leben;
    cout << endl;
    cout << "Level: ";
    cin >> Gegner2.Level;

    cout << endl << endl;


    // Ausgabe der Daten
    cout << "Gegner 1 heisst " << Gegner1.Name << " besitzt " << Gegner1.Leben << " Leben und ist Level " << Gegner1.Level << " !" << endl;
    cout << "Gegner 2 heisst " << Gegner2.Name << " besitzt " << Gegner2.Leben << " Leben und ist Level " << Gegner2.Level << " !" << endl;


    return 0;
}[/cpp]

2

22.07.2014, 16:39

Ah ich habs schon selbst...

cin.ignore(); vergessen...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

22.07.2014, 18:06

Wenn Du wieder auf ein Problem stößt, vergiss das mit "Visual Studio neu installieren". Das bringt rein gar nichts.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

4

22.07.2014, 18:22

Warum benutzt du eigentlich strukturen?

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

5

22.07.2014, 18:35

Warum sollte man keine benutzen?

6

22.07.2014, 20:12

Das ist natürlich Geschmackssache, aber ich verwende immer Strutkuren, wenn ich keine Methoden, oder ähnliches, sondern nur Datenmember bereitstelle (zumindest, wenn diese öffentlich sein sollen).

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

7

22.07.2014, 20:44

Ich verwende immer Strukturen, wenn ich nur public Member/Methoden habe. Außer dem Zugriffsschutz-Unterschied gibt es ja auch keine weiteren. :P
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

8

22.07.2014, 20:53

Doch! Das eine ist ein Byte Speicherplatz teurer. :D

MfG
Check

9

22.07.2014, 21:18

Warum das?

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

22.07.2014, 21:34

Nein, ist es nicht.

Class und Struct ist funktional Äquivalent. Der einzige Unterschied ist der Standardzugriffsmodifier. Strukturen sind standardmäßig öffentlich.
Ich persönlich habe mich darauf festgelegt, nur (noch) "class" zuverwenden um Verwirrungen bei der Forward Declaration zu vermeiden und ich bei Syntax wie Zugriffsmodifiern sowieso die "explizit vor implizit" Einstellung im Zweifelsfall habe . Im Prinzip ist es aber echt egal. Man könnte auch nur noch Strukturen verwenden. Oder Abwechselnd nach Uhrzeit, wenn man denn will.

Werbeanzeige