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.11.2011, 20:24

Programm beendet viel zu schnell

hi,
ich habe wieder einmal ein Problem :D. Und zwar, immer wenn ich eine Win32- Konsolenawendung in VC++ ausführe kommt der erste Teil z.b.: Geben sie ihr Passwort ein.
Wenn ich das Passwort dann eingebe, kommt ganz kurz die nachfolgende 'cout' Ausgabe und dann beendet das Programm obwohl man gar nicht fertig lesen kann.

Hat jemand eine Idee, wie das Ausgabefenster länger sehen kann??

Danke schonmal für antworten
Mein Spieleprojekt:War of future
Mein Blog: War of future
Ich kenne mich mit Blender aus.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

08.11.2011, 20:25

std::cin.get(); oder getch();
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

3

08.11.2011, 20:34

Keine der beiden Methoden funktioniert :( .
Mein Spieleprojekt:War of future
Mein Blog: War of future
Ich kenne mich mit Blender aus.

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

4

08.11.2011, 20:37

Kann theoretisch nicht sein, es sei denn du beendest das Programm vorher oder dein Programm schmiert ab. Magst du etwas Code dazu zeigen?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

08.11.2011, 20:42

Kann theoretisch schon sein, wenn mehr Daten im Puffer liegen als der letzte Stream-Operator abrufen konnte. ;)
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]

6

08.11.2011, 20:50

Hier ist mal der gesamte 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
#include <iostream>
#include <string>

using namespace std;

int main(void) {
    string Passwort;
        do {
    cout << "Bitte Passwort eingeben: ";
    cin >> Passwort;
        if (Passwort != "hallo") {
            cout << "Das Password ist falsch! Nochmal versuchen! ";
        }
        
            
        
        }while (Passwort != "hallo");
        
        cout << "Das Password ist richtig. ";// Das heir ab hier zeigt er nur kurz an und dann beendet
        cout << "sie haben es gecknackt :D"; // sich das Programm :( .
        
            return 0;
        }
Mein Spieleprojekt:War of future
Mein Blog: War of future
Ich kenne mich mit Blender aus.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

08.11.2011, 20:52

Was genau wundert dich daran, du hast es doch genau so programmiert!? Deine main() Funktion returned dort dann eben sofort. Wenn du das nicht willst, dann musst du irgendwas dagegen unternehmen...

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

8

08.11.2011, 20:55

So solltest du eig. deinen erwünschten Effekt bekommen.

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
#include <iostream>
#include <string>

using namespace std;

int main() {
    string Passwort;
    
    do {
        cout << "Bitte Passwort eingeben: ";
        cin >> Passwort;
        if (Passwort != "hallo") {
            cout << "Das Password ist falsch! Nochmal versuchen! ";
        }
    } while (Passwort != "hallo");
    
    cout << "Das Password ist richtig. ";// Das heir ab hier zeigt er nur kurz an und dann beendet
    cout << "sie haben es gecknackt :D"; // sich das Programm :( .
    
    cin.ignore();
    cin.get();
    
    return 0;
}
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

9

09.11.2011, 16:38

Oder so:

C-/C++-Quelltext

1
2
while(getch()!='\n')
return 0;

So würde das Programm erst beim Drücken der Entertaste beendet werden.

MfG
Check

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

10

09.11.2011, 16:50

Und das hier:

C-/C++-Quelltext

1
if (Passwort != "hallo")


Müsste so aussehen:

C-/C++-Quelltext

1
if (Passwort != "*****")


Hab noch nie gesehen das man in Passwordfeldern hallo stehen hat und dies funktionierte, tsts typischer Anfängerfehler

(Link)

Werbeanzeige