automatisches schließen von c++ programm verhindern!



  • Naja über die system Befehle lässt sich ja bekanntlich streiten 😃 Lad dir Code::Blocks runter, der verhindert automatisch ein schließen der Console, keine ahnung ob er es auch einfach über nen Billigen system("pause"); macht, aber er lässt auf jedenfall schonmal offen:D



  • Firefighter schrieb:

    Naja über die system Befehle lässt sich ja bekanntlich streiten 😃 Lad dir Code::Blocks runter, der verhindert automatisch ein schließen der Console, keine ahnung ob er es auch einfach über nen Billigen system("pause"); macht, aber er lässt auf jedenfall schonmal offen:D

    Praktisch fuers schnelle testen 🙂
    Schade, dass das nicht auch in MSVC implementiert ist.

    Gruss
    Cartman



  • Eric Cartman schrieb:

    Schade, dass das nicht auch in MSVC implementiert ist.

    In Microsofts IDE steht die Tastenkombination F5 oder der gefüllte grüne Pfeil für den Start des Debuggers. Ist kein Haltepunkt gesetzt läuft Programm durch und die Konsole schließt sich wieder.

    Strg+F5 (auch ein grüner Pfeil, aber nicht ganz gefüllt) hingegen startet das Programm ohne den Debugger, aber im Falle einer Konsolenanwendung mit einem Hinweis nach Programmende eine beliebige Taste zu drücken.



  • Eric Cartman schrieb:

    Praktisch fuers schnelle testen 🙂
    Schade, dass das nicht auch in MSVC implementiert ist.

    Gruss
    Cartman

    Microsofts Visual C++ 2008 Express Edition kann auch das "automatische Schließen" eines C++-Programms verhindern. Einfach in der Menüleiste auf Debuggen und anschließend auf Starten ohne Debugging klicken oder alternativ STRG + F5 drücken.

    Edit: Hmpf, zu langsam... 😞



  • @Mizar
    Kein Grund gleich traurig zu sein. 😉

    P.S: Soweit mir bekannt galten und gelten diese beiden Tastenkombinationen nicht nur für die Express-Edition. Früher war aber Strg+F5 durch ein Ausrufezeichen symbolisiert und in der Standardkonfiguration bereits mit auf der Symbolleiste. Jetzt ist standardmäßig nur der gefüllte grüne Pfeil auf der Symbolleiste, womit dann wahrscheinlich viele automatisch arbeiten ohne sich weitere Gedanken zu machen. (nur ein Vermutung von mir 🙂 )

    Einer meiner ersten Aktionen ist daher fast immer diese Symbolleisten anzupassen. Man klickt dann halt manchmal doch lieber als Strg+F5 zu drücken. 🙂



  • cin.get();
    

    Funktioniert bei dir einwandfrei, du hast nur nicht ganz verstanden was es tut. Dieser Befehl wartet auf ein Enter und schluckt es dann. Das Problem damit ist wenn du vorher schon einmal mit cin etwas eingelesen hast wie deine Variable dann fängt es das Enter davon auf. Deshalb musst du den Befehl einfach 2x verwenden, dann fängt er beim ersten mald as letzte Enter ab und das 2. mal wartet dann auf ein neues Enter.



  • Oder ganz einfach den Buffer von cin leer machen 😃



  • Firefighter schrieb:

    Oder ganz einfach den Buffer von cin leer machen 😃

    Sicher, ganz einfach. :p

    Hier gibts zum Beispiel einen Thread dazu.



  • Hrrrr...da war wieder der Mann mit der Goldwage da :p. Nein da hast du natürlich Recht, C++ macht es einem nie einfach.



  • Firefighter schrieb:

    C++ macht es einem nie einfach.

    "Nie" finde ich jetzt arg übertrieben. Vergleicht man zum Beispiel mit C... 😃



  • Xebov schrieb:

    cin.get();
    

    Dieser Befehl wartet auf ein Enter und schluckt es dann. Das Problem damit ist wenn du vorher schon einmal mit cin etwas eingelesen hast wie deine Variable dann fängt es das Enter davon auf. Deshalb musst du den Befehl einfach 2x verwenden, dann fängt er beim ersten mald as letzte Enter ab und das 2. mal wartet dann auf ein neues Enter.

    #include "stdafx.h"
    #include <iostream>
    
    using namespace std;
    
    int main ()
    
    {
    
    	float a=0,b=0,c=0,e=0,f=0;
    
    	cout << "geben sie 4 zahlen ein die ersten beiden werden addiert"<<endl;
    	cin >>a;
    	cin >>b;
    	cin >>e;
    	cin >>f;
    	c=a+b;
    	cout << "das ergebniss ist :"<<c<<endl;
    
    cin.get();
    cin.get();
    
    	return 0;
    }
    

    nach dem Zitat oben bräuchte ich bei diesem Beispiel aber dann mehr als zwei "cin.get();"
    weshalb reichen hier zwei??



  • Am besten leerst du den Puffer voher.

    http://c-plusplus.net/forum/viewtopic-var-t-is-111042.html


Anmelden zum Antworten