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

08.01.2011, 16:21

Problem mit Konsole (Kapitel 2)

HAllo zusammen!
Jedesmal wenn ich debugge kommt kurz die Konsole und sie verschwindet auch gleich wieder, also man kann nix lesen doer so.
Oder ich kann eine Punktezahl eingeben, drücke Enter und dann verschwindet sie wieder also kann ich nicht die Gesamtpunkte sehen. Was ist mein Fehler?

Hier der Code:

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
/*C++ für Spieleprogrammierer 
Arbeiten mit cin*/
//
#include <iostream>

using namespace std;

//Hauptprogramm
//
int main ()
{
    //Variablen
    int Punkte = 0;
    float Faktor = 2.5f;
    int Gesamtpunkte = 0;

    //Eingabe der Punktezahl
    cout << "Erreichte Punktezahl eingeben: ";
    cin >> Punkte;

    //Gesamtpunkte ausrechnen und Ergebins casten
    Gesamtpunkte = (int) (Punkte*Faktor);

    //Ausgabe des Ergebnisses
    cout << "Gesamtpunkte: " << Gesamtpunkte << endl;

    return 0;
}

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

2

08.01.2011, 16:41

einfach cin.get(); vor das return packen, dann wartet er auf eine weitere eingabe.
"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?

3

08.01.2011, 22:44

Du kannst auch mit [Strg]+[F5] Debuggen.

4

08.01.2011, 23:45

Hallo
ich gehe davon aus das du das Programm erstellst und dann öffnest.
Im Buch ist erklärt warum das Fenster direkt verschwindet.
Ich suche morgen mal die Seitenzahl raus.
Aber kurz vorweg:
Simpler Grund ist das das Programm durchläuft. Da am Ende kein Stop steht beendet es sich nach return 0.(Ende der main Funktion)
Wenn du das ganze Per Strg-F5 machst hält das Programm am Ende an und wartet auf eine Taste(egal.
Das ganze wird von deiner Entwicklungsumgebung gemacht.
Ich denke um genau diesen Fall des durchlaufens zu verhindern.

EDIT: Auflage 3 S. 20 1.4.5 wird das ganze erklärt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »easyMaxi« (09.01.2011, 15:41)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

5

09.01.2011, 00:30

Strg+F5 startet das programm ohne debuggen. dann kann er den debugger nichtmehr benutzen. ich versteh auch nicht wieso er das programm gerade beim debuggen sofort schließt. es müsst eigentlich andersherum sein. egal, cin.get(); in die zeile vor dem return und das problem ist gelöst
"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?

6

09.01.2011, 20:29

jo wenn du microsoft´s visual c++ benutz, kannst du über: Extras -> Einstellungen die erweiterten Einstellungen aktivieren. Wenn du sie aktiviert hast kannst du über Debug -> Starten ohne Debugging dein Programm starten ohne das es beendet... Den Fehler hatte ich am Anfang auch ;)

Werwofl

Treue Seele

Beiträge: 100

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

7

10.01.2011, 13:32

Wie hier beschreiben ansonsten einfach vor

C-/C++-Quelltext

1
return 0;


einfach

C-/C++-Quelltext

1
system("PAUSE");

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

8

10.01.2011, 14:08

Besser cin.get() ;)
system ist nicht Plattform unabhängig.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werwofl

Treue Seele

Beiträge: 100

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

9

10.01.2011, 14:58

Besser cin.get() ;)
system ist nicht Plattform unabhängig.

Siehste das wusst ich z.B. auch noch nicht. Wieder was gelernt :)
Grundsätzlich rate ich von meiner Lösung ab, aber da er noch bei Kapitel 2 ist dacht ich das wäre erst einmal die unkomplizierteste Lösung um kleine Programme schnell zum Laufen zum bringen.
Aber ich bin ja selbst noch Anfänger ;)

Werbeanzeige