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

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

1

16.01.2012, 17:51

Wo ist der Fehler? [Listing 5.6]

Mein compiler ist so assozial und spuckt den Fehler aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1>------ Neues Erstellen gestartet: Projekt: Lising5.6, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "Lising5.6" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>Listing_5.6.cpp
1>c:\users\arthur\desktop\lising5.6\listing_5.6.cpp(31) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Spieler1'
1>c:\users\arthur\desktop\lising5.6\listing_5.6.cpp(31) : error C3867: "std::basic_istream<_Elem,_Traits>::get": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&std::basic_istream<_Elem,_Traits>::get", um einen Zeiger auf den Member zu erstellen.
1>      with
1>      [
1>          _Elem=char,
1>          _Traits=std::char_traits<char>
1>      ]
1>c:\users\arthur\desktop\lising5.6\listing_5.6.cpp(39) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Spieler2'
1>c:\users\arthur\desktop\lising5.6\listing_5.6.cpp(39) : error C3867: "std::basic_istream<_Elem,_Traits>::get": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&std::basic_istream<_Elem,_Traits>::get", um einen Zeiger auf den Member zu erstellen.
1>      with
1>      [
1>          _Elem=char,
1>          _Traits=std::char_traits<char>
1>      ]
1>Das Buildprotokoll wurde unter "file://c:\Users\Arthur\Desktop\Lising5.6\Debug\BuildLog.htm" gespeichert.
1>Lising5.6 - 4 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========


Mein Code sieht wie folgt aus:

C-/C++-Quelltext

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
53
// C++ für Spieleprogrammierer
// Listing 5.6
// Strukturen erzeugen und verwenden
//
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
    // Strukturen
    //
    struct S_Spieler
    {
        int Energie;
        char Name [30];
    };

    // Variablen
    //
    S_Spieler Spieler1;
    S_Spieler Spieler2;

    // Daten der Spieler abfragen
    cout << "Name des ersten Spielers: ";
    cin.get (Spieler1.Name, 29);

    cout << "Energie des ersten Spielers: ";
    cin.get Spieler1.Energie;

    cin.ignore ();

    cout << "Name des zweiten Spielers: ";
    cin.get (Spieler2.Name, 29);

    cout << "Energie des zweiten Spielers: ";
    cin.get Spieler2.Energie;

    cout << endl;

    // Ausgabe der Daten
    cout << "Spieler 1:" << endl;
    cout << "Name: " << Spieler1.Name << endl;
    cout << "Energie: " << Spieler1.Energie << "\n\n";

    cout << "Spieler 2:" << endl;
    cout << "Name: " << Spieler2.Name << endl;
    cout << "Energie: " << Spieler2.Energie << "\n\n";

    return 0;
}


Ich kann den Fehler nicht finden -.-

2

16.01.2012, 17:52

Hallo, in der 39 Zeile fehlen Klammern.

C-/C++-Quelltext

1
cin.get (Spieler2.Energie);


Mfg

3

16.01.2012, 18:10

Und in Zeile 31.

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

4

16.01.2012, 18:17

Wow dann ist das ein fehler im Buch -.-
Danke Leutz :D

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

5

16.01.2012, 18:19

Nah, löst trotzdem nicht alles!

Quellcode

1
1>c:\users\arthur\desktop\lising5.6\listing_5.6.cpp(31) : error C3867: "std::basic_istream<_Elem,_Traits>::get": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&std::basic_istream<_Elem,_Traits>::get", um einen Zeiger auf den Member zu erstellen. 1>      with 1>      [ 1>          _Elem=char, 1>          _Traits=std::char_traits<char> 1>      ]

bleibt bestehen

sry wgn doppelpost

Embio

Frischling

Beiträge: 78

Wohnort: Da wo das Gras am grünsten ist

Beruf: Student - Physik

  • Private Nachricht senden

6

16.01.2012, 19:09

Zitat

cout << "Energie des ersten Spielers: ";
cin.get Spieler1.Energie;
Da muss

Zitat

cin >> Spieler1.Energie;
hin (Bei Spieler2 natürlich dasselbe). Warum genau weiss ich grade nicht. Kann kein C++. Glaube das war so, dass du mit "cin.get" eine Zeichenkette (char) einliest, und in einem Array speicherst. Da "Energie" aber ein int ist geht das nicht ;). Stand aber auch in meiner Fehlermeldung. KA warum das bei dir nicht drin steht. Evtl hast du nicht die komplette Meldung hier gepostet? Oder du nutzt VC++ 10. Ich habe hier 08 drauf.

Viel Erfolg noch ;)

PS: Glaub mir kein Wort bevor einer der Profis heir im Forum nicht sein "OK" gegeben hat ;).
Olaf Schubert: "Die katholische Kirche steckt einfach mehr in seinen Nachwuchs"

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

7

16.01.2012, 20:02

Nö komplett alles kopiert hab auch 2008 wunder mich jetz...
naja wayne danke ich probiers mal

EDIT: Super Danke hat alles geklappt :D

8

16.01.2012, 20:46

Sei mir nicht böse, aber könntest du deine Signatur womöglich etwas verkleinern? Die ist recht nervig. :vain:

MfG
Check

m3xx

Alter Hase

  • »m3xx« ist der Autor dieses Themas

Beiträge: 434

Beruf: Student

  • Private Nachricht senden

9

16.01.2012, 20:59

joa kann ich machen schreib mir pmessage wenns dannach immer noch net passt ^.-

// DONE!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »m3xx« (16.01.2012, 21:09)


10

17.01.2012, 08:44

Falls du das Problem noch nicht gelöst hast:
Der Fehler müsste in Zeile 39 (bzw. 31) liegen. Da man einfach einen cin-Wert einer "normalen" Variablen zuweist,
braucht man das cin.get nicht, sondern es reicht ein einfaches "cin".

Hab das gerade im Buch nachgeschaut, und da steht das auch so XD

Werbeanzeige