Ich will das sich das Fenster nicht schließt :)

Hallo,

der blutige Anfänger hat mal wieder eine Frage und zwar es geht um folgendes. Ich bin gerade dabei eine if-Funktion zu testen,ich habe extra eine ganz einfache gebaut,damit ich sehe ob es funktioniert:

Geben Sie die Zahl 10 ein!

->Wenn ich jetzt die Zahl 10 eingebe und mit enter bestätige,dann schließt sich das Fenster und meine restlichen Sachen (Richtig: Korrekte Eingabe! - Falsch: Sie haben eine falsche Zahl eingegeben!) werden garnicht angezeigt :confused:

Ich weiß das man mit enter das Fenster schließen kann,aber wie bekomme ich es hin,dass es sich erst schließt,nach dem die Meldungen heraus gegangen sind?

Ich hatte es schon mit getchar(); versucht,aber das bewirkt nur,dass das Fenster offen bleibt in manchen Situationen und sich nicht gleich sofort wieder schließt :confused:

Kann mir jemand einen Tipp geben? Wenn ihr nicht wisst was und wie ich es meine,liefer ich mal meinen Quelltext nach (Überhaupt nicht umfangreich),ich wollte es erst mal ohne fragen :smile:

Hallo Fragewurm,

->Wenn ich jetzt die Zahl 10 eingebe und mit enter
bestätige,dann schließt sich das Fenster und meine restlichen
Sachen (Richtig: Korrekte Eingabe! - Falsch: Sie haben eine
falsche Zahl eingegeben!) werden garnicht angezeigt :confused:

Wenn main() beendet wird, schliesst sich auch das Fenster.

Füge einfach am Ende noch ein
getchar();
ein. Dann schliesst sich das Fenster erst, wenn du Enter drückst.

MfG Peter(TOO)

Hallo

Wenn du auf Windows arbeitest kannst du über die Funktion system() auf Konsolenbefehle wie zum Beispiel pause zurückgreifen.

system("pause");

Ich verwende diese Funktion sehr gerne, ist aber nur auf Windows möglich.

mfg dixxi

getchar();
ein. Dann schliesst sich das Fenster erst, wenn du Enter
drückst.

Genau das habe ich auch versucht,aber ich muss ja um die „10“ zu bestätigen enter drücken :wink: Somit willige ich mit dem drücken der Enter-Taste 2 (davon 1 ungewollt) ungewollte Befehle ein und zwar: Bestätigen der Eingabe und schließen des Fensters,weil ja beides gleichzeitig passiert :confused:

Ich schreib hier mal gleich den Quellcode noch mit rein

#include
using namespace std;

int main(void)
{
int Eingabe;
cout > Eingabe;

if (Eingabe = 10)
{
cout

Das funktioniert leider nicht bei der Sache :confused: Kopier mal einfach den Quellcode und probiers selbst mal aus,vll siehst du dann was ich meine.

Hallo

if (Eingabe = 10)

Unabhängig von deinem Problem solltest du hier lieber if(Eingabe == 10) schreiben :smile:.
Schönen Abend noch.
Alex

Hallo,

->Wenn ich jetzt die Zahl 10 eingebe und mit enter
bestätige,dann schließt sich das Fenster und meine restlichen
Sachen (Richtig: Korrekte Eingabe! - Falsch: Sie haben eine
falsche Zahl eingegeben!) werden garnicht angezeigt :confused:

Das ist ein Problem mit deinem Betriebssystem, nicht mit C oder C++. Üblicherweise kannst du deinem Betriebssystem sagen, dass es Konsolenfenster offen lassen soll nachdem sich das Programm beendet hat, eventuell sogar pro Programm.

Ich finde solche „gib noch was ein damit sich das Programm beendet“ extrem nervig, da ich zum Testen sowieso eine Konsole ständig offen habe, und daher keinen Grund sehe, eine zusätzliche Taste zu drücken.

Grüße,
Moritz

Stimmt,danke :smile:

Hmm ok,ich werd mal schauen ob ich dazu etwas finde,wie und wo ich das abstellen kann.

Hmm ok,ich werd mal schauen ob ich dazu etwas finde,wie und wo
ich das abstellen kann.

Ruf dein Programm doch einfach aus einer Konsole aus.

In Windows:
Start -> Ausführen -> cmd.exe eintippen -> Schwarzes Konsolenfenster erscheint

Dort startest du dein Programm einfach, in dem du ihren Namen eingibst. Wenn dein Programm MeinProgramm.exe heisst und im Ordner C.\Mein\Verzeichnis liegt, dann gibst du beispielsweise einfach ein:

„C:\Mein\Verzeichnis\MeinProgramm.exe“

Dein Programm wird nun ausgeführt und die Konsole bleibt offen, d.h. du kannst die Ausgabe deines Programms auch sehen, wenn sich dein Programm schon beendet hat.

Hallo Keozor

Die getchar() hat schuld, macht bei mir dasselbe. Wenn du jedoch die getch() verwendest (mache ich immer so), klappt es, sofern du die Enter NUR KURZ drueckst.

Das Problem mit der Enter hast du dann auch, wenn du zu lange drauf bleibst. Die Tasten werden dann mehrmals pro Sekunde abgefragt, so, als wuerdest du mehrmals druecken.

#include // fuer \_kbhit() und auch getch()
#include 
using namespace std;

void eingabe(const char \*frage)
{
 int Eingabe;
 cout \> Eingabe;

 if (Eingabe == 10)
 {
 cout 
Das mit der \_kbhit() klappt (diesmal) nicht bei mir, weiß auch nicht, warum.

lG
Martin B

Hi,
hab dir mal nen schalter eingebaut, mit hilfe einer while-schleife, funktioniert folgendermaßen:
#include
int main(void)
{
int Eingabe;
while(Eingabe != 42)// der Prozess wird solange durchlaufen, bis die Zahl 42 eingegeben wurde.
{
printf(„Bitte geben Sie die Zahl 10 ein!\n“);
scanf("%i", &Eingabe);

if (Eingabe == 10)
{
printf("\nRichtig eingegeben!\n\n"); //Richtige Eingabe
}
if (Eingabe != 10)
{
printf("\nFehler,Sie haben eine falsche Zahl eingegeben!\n\n");//Falsches eingegeben
}
}
return 0;
}

ODER mit system(„pause“):

#include
#include
int main(void)
{
int Eingabe;
printf(„Bitte geben Sie die Zahl 10 ein!\n“);
scanf("%i", &Eingabe);

if (Eingabe == 10)
{
printf("\nRichtig eingegeben!\n\n"); //Richtige Eingabe
}
if (Eingabe != 10)
{
printf("\nFehler,Sie haben eine falsche Zahl eingegeben!\n\n");//Falsches eingegeben
}
system(„pause“);
return 0;
}

@all
Danke nochmal für die Antworten!!