Konsole schließt sich sofort

Piesbruhder

Mitglied
Hallo Freunde! Ich bins mal wieder, war ja ein paar Wochen nur
Zuschauer. Also, mich belästigte das Problemchen schon länger
aber jetzt will ich endlich wissen was ich tun kann.

Wenn ich z.B. ein HelloWorld-Programm schreibe (Wollt ihr einen
Sourcecode damit ihr wisst was ich meine? :p ;) )dann öffnet sich
die Konsole (oder auf deutsch: ein fenster mit schwarzem Hintergrund)
und es wird etwa eine halbe Sekunde lang HELLO WORLD! angezeigt.
und sofort schließt sich das Fenster wieder.
Aber in Tutorials und Dokumentationen steht am ende immer sowas wie
BELIEBIGE TASTE DRÜCKEN... oder sowas, wisst ihr?

Das alles ist so unter WindowsME aber früher auf Win98 wars genauso.
Compiler is VC6 Autorenversion. Aber auf meinem alten Win98 hatte ich
auch mal die StandartEdition zum ausprobieren drauf und es war genauso.
Was kann ich tun? :(

Ich hoffe dass mir jemand helfen kann. bis demnächst!
 
klar, denn bei diesem code hier...
Code:
#include <stdio.h>

int main(int argc, char *argv[])
{
  printf("Hello, World!\n");
  return 0;
}

...ist nach der printf-anweisung das programm auch schon zu ende (gibt aber vorher noch einen wert zurück).

du kannst das programm offen halten, indem du vor ende der main-funktion noch
Code:
getch();
benutzt. ist zwar nicht ansi-konform, aber funktioniert. :)
 
Üblicherweise startet man das Programm mit <F5>;
Die enstsprechenden Icons in der Werkzeugleiste währen eine bedruckte Seite mit Pfeil nach unten für <F5> und ein rotes Rufzeichen für <ctrl>+<F5>
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
char txt[81];
void *pointer;

while(1) { //Endlosschleife
pointer = strstr(txt, "exit");
if(pointer) {
break; //Schleife abbrechen
}
printf("Bitte eine Zeichenkette eingeben (max. 80 Zeichen)!\n\n");
scanf("%80s", txt);
printf("\nZeichenkettenlaenge: ");
printf("%d", strlen(txt));
printf("\nDu hast eingegeben: ");
printf("%s", txt);
printf("\n\n");
}

exit(0);
return 0;
}
 
Das eigentliche Programm wird in eine While-Schleife gepackt. Als Abbruchbedingung dient eine bestimmte einzugebende Zeichenfolge, im Beispiel „exit“. Also, beim Einlesen dieser Zeichenfolge verlässt das Programm die Schleife, und mit dem Befehl exit(0); wird das Konsolenprogramm beendet und geschlossen.

system("PAUSE"); oder getch(); würden zwar das Programm nach Drücken einer Taste schließen, aber dann hat man eben leider keine Chance, weitere Eingaben zu tätigen.
 
Kann man natürlich auch so lösen.
Aber findest du nicht, dass du 8,5 Jahre zu spät bist? :D

scanf hat bei Strings übrigens ein Problem mit Whitespaces.
Und am Schluss braucht man nicht exit und return, nur return reicht auch.

Gruß
 

Neue Beiträge

Zurück