[C/C++] cmd.exe schließt sich bevor Zahlen ausgegeben werden?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von NeXuS 2, 25. Mai 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 25. Mai 2009
    cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Guten Tag,

    So bin nen kapitel weiter und soweit hat alles geklappt, nur nachdem ich Zahlen eingegeben habe und dann das Ergebnis sehen will, dann schließt sich das cmd-fenster.

    Es handelt sich dabei um den Code hier:
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
     int zahl1;
     int zahl2;
     int zahl3;
     
     cout << "Gib ne Zahl ein man\n";
     cin >> zahl1;
     cout << "Wenns geht noch eine...\n";
     cin >> zahl3;
     cout << "Und noch eine bitte :)\n";
     cin >> zahl2;
     cout << "Zahl 1: "<<zahl1<<"\n";
     cout << "Zahl 3: "<<zahl3<<"\n";
     cout << "Zahl 2: "<<zahl2<<"\n";
    }
    
    schließt sich die cmd nachdem eintippen der 3 Zahlen auch? Wenn ja, warum? Wenn nein, warum dann bei mir?^^

    Gibts da sowas wie nen freeze-befehl? Damit das fenster da bleibt, oder erst weggeht wenn ich eingabe drücke (mit cin.get()) hab ich es schon probiert geht net)?


    mfg
     
  2. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Ja ist soweit ich weiß normal:
    Code:
    #include <iostream>
    using namespace std;
    
    int main()
    {
     int zahl1;
     int zahl2;
     int zahl3;
     char x;
     
     cout << "Gib ne Zahl ein man\n";
     cin >> zahl1;
     cout << "Wenns geht noch eine...\n";
     cin >> zahl3;
     cout << "Und noch eine bitte :)\n";
     cin >> zahl2;
     cout << "Zahl 1: "<<zahl1<<"\n";
     cout << "Zahl 3: "<<zahl3<<"\n";
     cout << "Zahl 2: "<<zahl2<<"\n";
     cout << "Drücken sie ENTER um fortzufahren!";
     cin >> x;
    }
    // Nicht getestet
    
     
  3. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    oder nimmst die standardlib von c und machst ein system("pause")
     
  4. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    ein einfaches
    cin.get();

    am ende sollte es eigentlich auch tun 0ô.

    Probiere einfach mal, zweimal cin.get(); an das ende zu schreiben!
     
  5. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    normalerweise bleibt das fenster auch offen wenn du die main richtig mit "return 0;" beendest! zumindest im VS isses so
     
  6. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Also, das mit cin.get() geht nicht, weil evtl. noch zeichen im Eingabebuffer stehen und cin.get(); somit gleich zurückkehrt.
    system() sollte man nicht benutzen.
    und das mit return 0; stimmt auch nicht zwingend, das macht auch nur Visual Studio (und afaik auch nur, wenn man das programm mit STRG+F5 startet)

    Du musst einfach den Eingabebuffer leeren und dann erst mit cin.get() warten:
    Code:
     std::cin.clear();
     std::cin.ignore(std::cin.rdbuf()->in_avail());
     std::cin.get(); 
    Das sollte normalerweiße funktionieren.
     
  7. 25. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Hm, wenn ich das zweimal schreib bleibts offen...komisch vorher gings mit einem oder sogar ohne.

    Pyro das von dir ging auch nicht, sieht aber interessant aus, wann lernt man das?^^

    danke at all
     
  8. 26. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Falls es damit immer noch nicht funktioniert probier doch einfach mal:

    Code:
    #include <conio>
    
    
    getch(); 
    
    mfg

    whenyou
     
  9. 26. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Das einfachste ist nen scanf

    Einfach unter das letzte "cout" folgendes:
    scanf("%i",&zahl2);

    Funktioniert einwandfrei und stop nach dem ausgeben. Du hast aber
     
  10. 26. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    hab irgendwo mal gehört, dass std::cin.ignore(std::cin.rdbuf()->in_avail()); bei gcc z.b. nicht funktioniert... allerdings kann das auch nur ein gerücht sein.. bei mir funktioniert es jedenfalls auch nicht

    deshalb:
    Code:
     cin.clear();
     cin.ignore(INT_MAX, '\n');
     cin.get();
    MFG
    xXsoureXx
     
  11. 26. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    Wenn du die Ausgabe nur noch lesen willst bevor es sich beendet, kannst du auch einfach nen Sleep(x) anhängen oder ein while(true){}...
     
  12. 27. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    So müsste es laufen und dein Problem gelöst sein. Er wartet nun auf eine Eingabe.



    mfg
     
  13. 27. Mai 2009
    AW: cmd.exe schließt sich bevor Zahlen ausgegeben werden?

    [X] SuFu / Geloest.

    ~closed~

    Mfg,

    Kolazomai
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.