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

21

17.02.2009, 21:30

Also das wo ich mich geirrt hab mir m_Mine statt m_Minen ist Minenleger.cpp:

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
#include <iostream>
#include "Minenleger.hpp"
#include "Raumschiff.hpp"

using namespace std;

CMinenleger::CMinenleger(){
              m_Minen = 10;
              cout << "Konstruktor wurde aufgerufen" << endl;
}
void CMinenleger::Mine_Legen(){
     if(m_Minen <= 0){
                cout << "Keine Minen mehr übrig." << endl;
     }else{
           m_Minen--;
           cout << "Mine gelegt. Es sind noch " << m_Minen << " Minen übrig." << endl;
     }
}
void CMinenleger::Starten(){
     cout << "Minenleger " << m_Name << " ist gestartet!" << endl;
}
void CRaumschiff::Landen(){
     cout << "Minenleger " << m_Name << " ist gelandet!" << endl;
}
void CRaumschiff::Init(){
     cout << "Name des Minenlegers eingeben! ";
     cin.get(m_Name, 29);
}

22

17.02.2009, 21:31

Schreibe statt CRaumschiff::Landen() und CRaumschiff::Init()
CMinenleger::Landen() und CMinenleger::Init()
fka tm

23

17.02.2009, 21:36

WOW, das läuft sogar, aber den Namen für den Minenleger lässt er mich nicht eingeben!


(Link)


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
#include <iostream>
#include "Raumschiff.hpp"
#include "Minenleger.hpp"
using namespace std;

int main(){
    
    CRaumschiff Raumschiff;
    CMinenleger Minenleger;
    //CFighter Fighter;

    
    Raumschiff.Init();
    Raumschiff.Starten();
    Raumschiff.Landen();
    
    Minenleger.Init();
    Minenleger.Starten();
    Minenleger.Landen();
    
    system("pause");
    
    return 0;
}

24

17.02.2009, 22:10

Bin nicht so firm in Sachen Konsolenanwendungen, aber ich glaube, du solltest den Eingabepuffer nach der ersten Eingabe leeren.
fka tm

25

17.02.2009, 22:26

ein cin.ignore() vor dem cin.get() sollte helfen

26

18.02.2009, 16:02

Da wird das erste Zeichen weggeschnitten,aber auch nur das erste Mal...


(Link)

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

27

18.02.2009, 23:31

Zeig mal den Code wo Du den Namen des Schiffes von der Konsole holst, also bei cin.

28

21.02.2009, 14:49

Minenleger.cpp:

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
#include <iostream>
#include "Minenleger.hpp"
#include "Raumschiff.hpp"

using namespace std;

CMinenleger::CMinenleger(){
              m_Minen = 10;
              cout << "Konstruktor wurde aufgerufen" << endl;
}
void CMinenleger::Mine_Legen(){
     if(m_Minen <= 0){
                cout << "Keine Minen mehr übrig." << endl;
     }else{
           m_Minen--;
           cout << "Mine gelegt. Es sind noch " << m_Minen << " Minen übrig." << endl;
     }
}
void CMinenleger::Starten(){
     cout << "Minenleger " << m_Name << " ist gestartet!" << endl;
}
void CMinenleger::Landen(){
     cout << "Minenleger " << m_Name << " ist gelandet!" << endl;
}
void CMinenleger::Init(){
     cout << "Name des Minenlegers eingeben! ";
     cin.ignore();
     cin.get(m_Name, 29);
}


Raumschiff.cpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include "Raumschiff.hpp"

using namespace std;

CRaumschiff::CRaumschiff(){
              m_Energie = 1000;
              cout << "Konstruktor wurde aufgerufen" << endl;
}
void CRaumschiff::Starten(){
     cout << "Raumschiff " << m_Name << " ist gestartet!" << endl;
}
void CRaumschiff::Landen(){
     cout << "Raumschiff " << m_Name << " ist gelandet!" << endl;
}
void CRaumschiff::Init(){
     cout << "Name des Raumschiffes eingeben! ";
     cin.ignore();
     cin.get(m_Name, 29);
}

Werbeanzeige