Anfänger C++ Frage

Hallo, habe eine kleine Verständnissfrage zu einem simplem Programm,
dass 3 Zahlen in 3 Integer Variablen aufnimmt und dann in der Reihenfolge
1,3,2 wieder ausgibt.

Code:
#include <iostream>
using namespace std;

int main()
{
    int Zahl1,Zahl2,Zahl3;
    
    cout << "Bitte Zahl 1 eingeben\n";
    cin >> Zahl1;
    cout << "Bitte Zahl 2 eingeben\n";
    cin >> Zahl2;
    cout << "Bitte Zahl 3 eingeben\n";
    cin >> Zahl3;
    cout << Zahl1 << " " << Zahl3 << " " << Zahl2 << "\n";
    cin.get(); //Fenster nicht scließen lassen
    cin.get();
    
}

Wieso schließt sich das DOS-Fenster selbst wenn ich nur ein cin.get(); am ende benutze, Ich brauche irgendwie 2 mal den selben Befehl. Kann mir jemand helfen?
Und ja ich weiß das man das Nachher auch mit system machen kann.

PS: Ich benutze den Bloodshed Dev-C++

CracKPod
 
Probiere es mal statt mit cin.get mit system("Pause");

Dann bleibt das Fenster solange geöffnet, bis man eine beliebige Taste drückt.
 
Lass mal am ende von deinem letzten cout<<....;
den newline-Charakter(\n) weg
wenn ich mich nicht irre wird er vom ersten cin.get();
aks ein Eingabe gewertet.
Optional koenntest du auch

cout<<"...."<<endl;

schreiben wenn ich mich nicht irre.
mfg
sw33t


//edit:
du benutzt nicht
Bloodshedd zum Kompilieren.
Das ist nur die IDe.
Das Dingen hat einen GCC-Kompiler, das gleiche Dingen was auch unterLinux immer dabei ist(klugscheiss ^^).
Bei solchen sachen lohnt es sich zwar nicht aber, wenn deine Probs mal komplexer werden nimm den gdb ist auch drinnen.
Wenn du den Path um das Verzeichniss von GCC erweiterst kannst du das alles auch in der Kommandozeile machen*G*.

//edit:2.hab shice geredet, liegt nicht am \n liegt am cin<<...;
denn wenn man die rausnimmt, dann laeuft es wie es laufen muesste.
Interessiert mich nun auch.
koennte an der Klasse liegen aber habe keinen Bock mir anzuschauen wie sie aufgebaut ist, wuerd es wahrscheinlich aucfh nciht verstehen.*heul*
 
Sehr komisch - dabei ist doch eigentlich cin
für die User Eingaben gedacht und nicht für die Programminternen, dafür
gibts ja Variablen.
(Wenn ich das jetzt so vergleichen kann) ^^.

CracKPod
 
Das liegt daran, dass im Eingabe-Buffer noch Zahl3 gespeichert ist, du musst ihn erst mit fflush(stdin); leeren...

Code:
#include <iostream>
using namespace std;

int main()
{
    int Zahl1,Zahl2,Zahl3;
    
    cout << "Bitte Zahl 1 eingeben\n";
    cin >> Zahl1;
    cout << "Bitte Zahl 2 eingeben\n";
    cin >> Zahl2;
    cout << "Bitte Zahl 3 eingeben\n";
    cin >> Zahl3;
    cout << Zahl1 << " " << Zahl3 << " " << Zahl2 << "\n";
    fflush(stdin);    //Eingabe-Buffer leeren
    cin.get();
    
}
 
Zurück
Oben