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.