1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Beispielprogramme verschwinden gleich

  • Matt_informatic
  • 13. November 2007 um 20:13
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Matt_informatic
    Punkte
    190
    Beiträge
    27
    • 13. November 2007 um 20:13
    • #1

    Hi,

    habe einige Beispielprogramme für C gefunden, auch in Lehrbücher.

    Was mir auffällt, das das Konsolenanwendungen sind, was zwar nicht
    schlimm ist, aber die Fenster immer gleich verschwinden.

    Das finde ich nervig.

    Warum wird da nicht gleich noch die Tastatur abgefragt, bevor das Fenster geschlossen wird. So kann man sich das Ergebnsi wenigstens nochmal anschauen.

    Woran liegt das?

    Gruß
    Matt

  • Swoncen
    Punkte
    5.331
    Beiträge
    993
    • 13. November 2007 um 20:18
    • #2

    schreib im main ganz unten einfach noch ein "getchar();"

  • a9bejo
    Punkte
    4.697
    Beiträge
    913
    • 13. November 2007 um 20:43
    • #3

    Oder führe das Programm gleich in der Konsole aus.

  • josef19
    Punkte
    749
    Beiträge
    135
    • 13. November 2007 um 20:45
    • #4

    -) mit eingabeauforderung (cmd)
    oder
    -) system("PAUSE");

  • Ivy
    Punkte
    4.920
    Beiträge
    889
    • 13. November 2007 um 20:46
    • #5
    Zitat von josef19

    -) mit eingabeauforderung (cmd)
    oder
    -) system("PAUSE");

    mit systempause funktioniert das eigentlich ganz gut. ich muss sagen, dass dieses problem bei mir auch auftritt. es kommt auch auf den compiler an, oder? ich verwende devc++ und das ist ein sch***, was das betrifft. aber auch in der eingabeaufforderung sollte es klappen.

  • Plantschkuh!
    Punkte
    6.173
    Beiträge
    1.181
    • 13. November 2007 um 21:51
    • #6
    Zitat von Ivy

    ich verwende devc++ und das ist ein sch***, was das betrifft.


    Wieso ist es ein Sch***, wenn ein beendetes Programm geschlossen wird? Besser als lauter tote Fenster rumliegen haben. Der Compiler kann auch nicht riechen, ob das Programm nur schnell was machen und dann wieder verschwinden soll oder nicht.

  • MaxAuthority
    Punkte
    3.165
    Beiträge
    626
    • 14. November 2007 um 01:40
    • #7
    Zitat von josef19

    -) mit eingabeauforderung (cmd)
    oder
    -) system("PAUSE");

    Sehr plattform-unabhaengigen programmierstil empfiehlst du da, wenn jemand eh schon getchar() empfohlen hat, was auf jedem system geht

  • Matt_informatic
    Punkte
    190
    Beiträge
    27
    • 14. November 2007 um 19:48
    • #8

    Hi,

    das mit getchar(); kenne ich.

    Wollte nur wissen, warum in den ganzen Listings nicht das angegeben ist.

    Ob das vielleicht am Compiler liegt, oder was auch immer.

    Wenn ich direkt in der Konsole ausführe, dann bleibt das Fenster offen.

    Das war der Haken.

    Dank' Euch.

    Gruß
    Matt

  • a9bejo
    Punkte
    4.697
    Beiträge
    913
    • 14. November 2007 um 20:04
    • #9
    Zitat von Matt_informatic

    Hi,
    Wollte nur wissen, warum in den ganzen Listings nicht das angegeben ist.

    Weil ein Konsolenprogramm ueblicherweise aus einer Konsole heraus gestartet wird. Es macht normalerweise keinen Sinn, nach dem Ende eines Programms noch auf ein Zeichen zu warten (getchar()). Das ist nur ein Trick fuer deine konkrete Situation: Das du das Programm eben nicht aus einer Konsole heraus startest. Das geht eigentlich gar nicht (das Ding heisst ja nicht umsonst Konsolenprogramme). Und weil dein Betriebsystem das weiss, erstellt es in diesem Fall eine neue Konsole, extra fuer dein Programm.

    D.h. wenn Du den getchar() trick verwendest, dann aber nur zum testen der Programme. Wenn Du spaeter eigene Konsolenprogramme schreibst, die Du oder andere verwenden sollen, dann sollte das da nicht stehen.

  • MaxAuthority
    Punkte
    3.165
    Beiträge
    626
    • 14. November 2007 um 20:04
    • #10
    Zitat von Matt_informatic


    Wenn ich direkt in der Konsole ausführe, dann bleibt das Fenster offen.

    Das war der Haken.

    Naja, das ist kein "Haken", sondern expected behavior von terminal programmen wuerd ich sagen.
    Waer doch bloed, wenn man bei jedem xterm -e mutt, nach dem schliessen von mutt nochmals das terminal schliessen muesste.

  • Matt_informatic
    Punkte
    190
    Beiträge
    27
    • 15. November 2007 um 21:11
    • #11
    Zitat


    Weil ein Konsolenprogramm ueblicherweise aus einer Konsole heraus gestartet wird.


    Das habe ich dummerweise anfangs nicht verstanden. Naja, egal, jetzt verstehe ich den Sinn.

    Das mit dem "Konsolenprogramm" war mir echt nicht so klar.

    Gut, aber deswegen kann man ja auch fragen. ;)

    Danke, verstehe das jetzt mit gethchar().

    Danke Euch für die Infos.

    Jetzt ist vieles für mich klarer geworden.

    Wird mir zukünftig viel helfen.

    Schönen Abend noch.

    Gruß
    Matt

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum