Console schliesst sofort nach Ergebnissausgabe



  • maxf schrieb:

    Es funktioniert in der IDE deshalbo ohne Zusatz-Code, weil das Programm nie
    dierekt gestartet wird. Es läuft immer in einer Anzeigeumgebung. Wenn man es dann
    allerdings ohne die Anzeigeumgebung der IDE aufruft, geht es natürlich sofort
    wieder zu.

    in meiner Studienrichtung Fahrzeugtechnik werden wir nur EINE C++ Klausur machen, danach nicht mehr. also nur so anfänger kram.
    also mit dem getch() klappts auch, aber ich habs mit diesem IDE nicht so richtig verstanden weil ich anfänger bin.
    kurz gefragt, kriege ich das mit der IDE auch hin ohne Zusatz-Code ?



  • @alicio
    Das hängt von deiner IDE (das ist übrigens einfach ausgedrückt einfach nur die Abkürzung für Programmieroberfläche) ab. Bei manchen kann man einstellen, dass das Fenster offen bleibt, bei anderen kann man z. B. angeben, dass das compilierte Programm in der Konsole ausgeführt werden soll.

    Allerdings bringt das alles nichts, wenn du das Programm dann später trotzdem einfach vom Explorer aus aufrufst. Da verschwindet das Fenster einfach, wenn du deine Konsole nicht entsprechend eingestellt hast.

    Ergo: Wenn du willst, dass das Fenster auf jeden Fall stehen bleiben soll, dann musst du eine zusätzliche Zeile reincoden. (Aber um Gottes Willen nicht system("PAUSE")!!!)

    Ich führe die Konsolenprogramme übrigens, wie es sich gehört meiner Meinung nach, schön brav immer in der Konsole aus. Dann gibts auch kein Problem mit automatisch schließenden Fenstern.



  • Ein etwas anderer Vorschlag...hab das prog. leicht verändert...
    Ich musste auf die harte Tour lernen das es gut ist den Tastatur-Buffer immer nach jedem scanf zu "leeren". Sonst klappt das getchar() ned immer weil irgendwo noch n Enter rumliegt.

    int main() 
    { 
    double  bonbon_preis,
            inflations_rate,
            preis_grenze; 
    int     jahre;
    char    berechnen='J';
    
    while (berechnen=='J')
    {
    	system("cls");	//clearScreen
    
    	printf("Bonbonpreis: "); 
    	scanf("%lf",&bonbon_preis);
    	while(getchar()!='\n');	//tastaturBuffer leeren (bis und mit NewLine)
    
    	printf("\nInflationsraste: "); 
    	scanf("%lf",&inflations_rate);
    	while(getchar()!='\n');
    
    	printf("\nPreisgrenze: "); 
    	scanf("%lf",&preis_grenze);
    	while(getchar()!='\n');
    
    	inflations_rate=inflations_rate/100; 
    
    	for(jahre=0;bonbon_preis<preis_grenze;jahre++) 
    	{ 
    		bonbon_preis=bonbon_preis*inflations_rate+bonbon_preis; 
    	} 
    
    	printf("\nPreis nach %d Jahren: %0.2lf\n\n",jahre,bonbon_preis);
    
    	printf("Nochmals berechnen?[J/N]");
    	berechnen=toupper(getchar());	//Char lesen in Grossbuchstaben aendern und in "berechnen" speichern
    	while(getchar()!='\n');
    }
    
    printf("\n\nBeenden mit Enter...");
    getchar();
    }
    

    Vielleicht gefällt dir das so...



  • also deine version krieg ich net zum laufen, folgender fehler:
    38 c:\dev-cpp\untitl~2.cpp
    implicit declaration of function `int toupper(...)'



  • Mhm... hab eine Lib vergessen...

    #include <ctype.h>

    die noch einbinden dann sollte es laufen...



  • kann es sein das auf Win2000 die Fenster nicht schliessen?
    also auf der UNI sind alle Rechner Win2000.



  • junix schrieb:

    Dann ist das ein Programmfehler oder es wurde speziell konfiguriert...

    Die MSVC IDE startet für Konsolenprojekte ein Programm namens "vcspawn", das dann das eigentliche Programm startet und nach dessen Beendigung die erwähnte Meldung ausgibt und auf einen Tastendruck wartet.



  • alicio schrieb:

    kann es sein das auf Win2000 die Fenster nicht schliessen?

    Nein.


Anmelden zum Antworten