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

11

16.05.2011, 19:13

Hey Leute,

Vielen Dank erst mal für die ausführlichen Antworten!
Hätte ich nicht gedacht :)

STRG+F5 funzt.
Nur wundere ich mich, dass die Ausgabe sich auf einen anderen Code bezieht. . . ?! ja, also ich habe kapiert, dass ich nochmal das erste Kapitel ordentlich durcharbeiten sollte...
kann sein, dass ich bereits beim Anlegen der Projektdateien gepfuscht habe....

Danke jedenfalls für die Reaktionen.

Werde mich wahrscheinlich die kommenden Tage öfter hier melden, mit Anfängerproblemen ;D

12

23.05.2011, 20:27

ok, nochmal zu dem Thema:

hier der Code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Definition und Deklarieren von Variablen

#include <iostream>

using namespace std;

int main()
{
    int Lebensenergie;  // Variable deklarieren

    Lebensenergie = 90  // Variable definieren
        cout << "Lebensenergie des Spielers ???: " << Lebensenergie << endl;
    cin.get()
    return 0;

}


Bei Click auf DEBUG läuft das Programm durch, ohne die Ausgabe zu pausieren/anzuzeigen - was ja mit cin.get() und den anderen Befehlen die ich ausprobiert habe, geschehen müsste *verwirrt/frustriert*


Was ich noch weniger verstehe --> Bei Verwendung der Tastenkombination STRG+F5 lautet die Ausgabe trotzdem:

Quellcode

1
2
Lebensenergie des Spielers: 100
Drücken Sie eine beliebige Taste...



Irgendwelche Hinweise wo mein Fehler liegen könnte?
Wie gesagt = blutiger Anfänger ?(

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

13

23.05.2011, 20:29

Wahrscheinlich durch irgendeinen Grund schon was im buffer. cin.ignore() ist das Stichwort.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

14

23.05.2011, 20:32

HABE DEN FEHLER... hatte den falschen pfad zur .cpp-Datei!
Es war wirklich einfach eine falsche Datei/Verknüpfung!

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »haenser« (23.05.2011, 20:40)


15

23.05.2011, 22:15

Zusammenfassung
std::system("pause") (Header: <cstdio>) solltest du nicht nehmen. Wobei das bei Programmen, die nur für dich zum üben sind, wohl auch reichen sollte.
std::cin.get() (Header: <iostream>) hält in dem Sinn dein Programm nicht auf, sondern holt sich schlicht das nächste Zeichen aus dem Eingabestream. In diesem kann aber ggf. bereits etwas stehen, was du mit std::cin.ignore entsprechend "überspringen" kannst. std::cin.sync() ist keine passende Alternative zu std::cin.ignore, auch wenn dies oft angepriesen wird. std::getchar() (Header: <cstdio>), std::getc() (Header:<cstdio>), die auch in diesem Zusammenhang gelegentlich erwähnt werden, sind zum einen Funktionen die aus dem C-Std. übernommen wurden, und zum anderen auch nicht geeignet.

Wie hier aber schon korrekt angemerkt wurde, ist das "Warte auf eine Eingabe" am Ende eines Programmes für ein Konsolenprogramm so eigtl. nicht beabsichtigt.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Deviloper« (23.05.2011, 22:21)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

16

23.05.2011, 22:26

std::cin.sync() ist keine passende Alternative zu std::cin.ignore, auch wenn dies oft angepriesen wird.

Könntest du das bitte erklären?
Auf www.cplusplus.com wird quasi das gleiche Beispiel für ignore() und sync() verwendet. Nach den Erklärungen scheint es auch aufs Gleiche hinaus zu laufen. Worin besteht also der Unterschied?
"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?

17

06.06.2011, 22:14

sorry ich war nicht erreichbar. Hier die Antwort: http://www.fun-soft.de/showtopic.php?threadid=21290
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige