Ausgabe !



  • Hi,

    habe mir ein Buch für Anfänger gekauft und ist von M&T.
    Nu habe ich gleich mal eine Frage bzu folgendem Code:

    #include <stdio.h>
    
    void main()
    {
    printf("ein text der erscheinen soll");
    }
    

    Habe es dann normal gelinkt und dann die erstellte .exe ausgeführt. es erscheint ganz kurz ein fenster und ist auch sofort wider wech. Liegt der Fehler im Code ?
    der Linker hatte nicht gemeckert !
    Gruß
    Dennis



  • Dein Programm ist beendet, also schließt es sich. Das ist ein völlig normales Verhalten.

    Zu dem Thema gibts hunderte von Posts mit Diskussionen und Lösungen.





  • system("sleep");
    

    ^^win-abhänig



  • @lippoliv: Warum postest du soetwas im ANSI C-Forum, wenn der FAQ-Eintrag alle Fragen *elegant* beantwortet? 🙄

    cheers, Swordfish



  • lippoliv schrieb:

    system("sleep");
    

    ^^win-abhänig

    for(;;);
    

    ^^nicht systemabhängig.
    🙂



  • fricky schrieb:

    lippoliv schrieb:

    system("sleep");
    

    ^^win-abhänig

    for(;;);
    

    ^^nicht systemabhängig.
    🙂

    ^^Endlosschleife die absturz des Progs irgendwann erzeugt, somit total unsauber

    Swordfish schrieb:

    @lippoliv: Warum postest du soetwas im ANSI C-Forum, wenn der FAQ-Eintrag alle Fragen *elegant* beantwortet? 🙄

    cheers, Swordfish

    Ich finde, ein anfänger (zumindes ich anfangs), fand es immer besser etwas übersichtliches zu haben, anstatt etwas was ich ur nich raffe...

    und mit

    void wait ()
    {
        setvbuf(stdin,NULL,_IONBF,0);
        setvbuf(stdin,NULL,_IOFBF,BUFSIZ);
        getchar();
    }
    

    müsste man sich definitiv auseinandersetzeen, da ist doch

    system("sleep");
    

    einfacher oder nicht?

    Man könnte übrigens auch

    while( !kbhit() ) ;
    

    machen...



  • lippoliv schrieb:

    ^^Endlosschleife die absturz des Progs irgendwann erzeugt, somit total unsauber

    wieso sollte das programm abstürzen?
    eine endlosschleife ist doch das genaue gegenteil eines absturzes: ein absolut fehlerfreier code, der läuft und läuft und läuft und...
    🙂



  • fricky schrieb:

    lippoliv schrieb:

    ^^Endlosschleife die absturz des Progs irgendwann erzeugt, somit total unsauber

    wieso sollte das programm abstürzen?
    eine endlosschleife ist doch das genaue gegenteil eines absturzes: ein absolut fehlerfreier code, der läuft und läuft und läuft und...
    🙂

    Ja ok absturz ist falsch formuliert: Windoof schießts irgendwann ab (Zumindest XP u. Vista machen das nach einer weile)



  • lippoliv schrieb:

    Windoof schießts irgendwann ab (Zumindest XP u. Vista machen das nach einer weile)

    vielleicht hast du zu wenig wärmeleitpaste unterm prozessorkühler, aber eigentlich sollte windoofs nichts passieren. es läuft nur etwas träge, wenn irgendwo endlosschleifen rumsausen.
    🙂



  • Nein mein Windows schießt endlosschleifen ab...
    Also Vista fragt halt "Soll auf das und das Programm gewartet werden oder Wollen sie es Beenden" und WinXP schießt dann bei Konsolenanwenudngen allerdings nur son Proggi ab...

    Ich muss das nochmal testen, aber ich lgaube ich hatte da schon ein paar progs, die einfach beendet wurden xD

    Vista aber auf jeden fall!



  • also bei meinem XP passiert nix. und vista? naja, dazu verkneife ich mir jetzt mal jeglichen kommentar.
    🙂



  • fricky schrieb:

    also bei meinem XP passiert nix. und vista? naja, dazu verkneife ich mir jetzt mal jeglichen kommentar.
    🙂

    immer diese Vorurteile... Vista ist (auch für Programmierer) in vielerlei Hinsicht besser...

    Nenn mir mal bitte nen nachteil... (is zwar nich Topic aber egal) xD

    Vorteil:
    +Vista hat besseres Fehlerhandling (siehe meine 2 posts)
    +Vista ist "hübscher"
    +Vista ist schneller (klar: nicht mit nem trabbi-pc)

    Nachteile:
    -Vista braucht bischen mehr resourcen (das wurde bei XP auch angemangelt)
    -In Vista findet sich noch nicht jeder zurecht(was daran liegt das es aufgrund von voruteilen wenige nutzen)
    -...?

    Also nich bös gemeint jetzt, nur fand ich nochkeinen der wirklich richtige argumente bringen konnte 😉



  • lippoliv schrieb:

    Vista ist schneller (klar: nicht mit nem trabbi-pc)

    Aber nur beim Befüllen des Speichers...



  • Tachyon schrieb:

    lippoliv schrieb:

    Vista ist schneller (klar: nicht mit nem trabbi-pc)

    Aber nur beim Befüllen des Speichers...

    Falsch!

    Vista ist auch beim Start schneller...
    Da Berichten viele Blogs drüber...



  • Ja ich hab hier 1,8 GB RAM als "im Cache" makiert. Also für superfetch. Mein gott, das ding benutzt den RAM und lässt den nich nur blög rumgammeln...
    Also ich finde es hilfreich wenn VS innerhalb einer sekunde startet, und nicht > 10 sec. rumrödelt.



  • rggr schrieb:

    Ja ich hab hier 1,8 GB RAM als "im Cache" makiert. Also für superfetch. Mein gott, das ding benutzt den RAM und lässt den nich nur blög rumgammeln...
    Also ich finde es hilfreich wenn VS innerhalb einer sekunde startet, und nicht > 10 sec. rumrödelt.

    ^^ Du glücklicher.. inna Schule dauerts.. naja... > 50 sek... Das ist übrigens echt schlecht xD



  • lippoliv schrieb:

    [...] und mit

    void wait( )
    {
        setvbuf( stdin, NULL, _IONBF, 0 );
        setvbuf( stdin, NULL, _IOFBF, BUFSIZ );
        getchar( );
    }
    

    müsste man sich definitiv auseinandersetzeen, da ist doch

    system( "sleep" );
    

    einfacher oder nicht?

    Man könnte übrigens auch

    while( !kbhit( ) );
    

    machen...

    Ja, mit ersterem müsste man sich auseinandersetzten. Verdammt, der OP hätte dabei gelärnt, was setvbuf( ) macht... Hätt' ihm sicher geschadet. 🙄

    mit 2) und 3) muss man sich natürlich nicht beschäftigen, da natürlich auf den ersten Blick klar ist, was die Funktion system( ) macht, und was sleep ist... was kbhit( ) und dann noch mit ! davor ist, ist auch klar wie Kloßbrühe ... und natürlich ANSI C... 👎

    cheers, Swordfish



  • Erstmal zurück zum Thema:
    ffängers Compiler bastelt eine Konsolenapplikation, rödelt die ab und schließt die Konsole wieder. Das heißt erstmal nichts Schlechtes und dem Frager fehlt nur das Feedback, ob wirklich "hello world" oder ein böser Fehler ausgespuckt wird. Wenn man sich nicht wirklich mit der Konsolensteuerung auseinandersetzen oder immer solche while(1)- Boxen brutal abknallen mag: Da gab es mal native Compiler für DOS, die immer höflich gefragt haben, ob man jetzt zur IDE zurück darf, bevor das Aus/Eingabefenster gekillt wurde. Da man es selten schätzt, daß eine olle DOS- Kamelle sein Zeug in das Vista- C:\ schüttet, bin ich dazu übergegangen, sowas in VMWare- Maschinen zu packen. Ja, geht auch mit XEN oder VirtualPC und Co, einfach probieren ...
    Das Schöne ist halt, daß in diesen Boxen die alten Sachen von "damals" weiterleben, ohne den Wirt in irgendeiner Weise zu kratzen. Man kann dann nach DOS- basiertem Lehrbuch vorgehen und sich den anderen Widrigkeiten der GUI- Zeit später widmen.

    Ein bißchen OT doch noch:
    Soviel Zeit kann kein Precaching wettmachen, was mich das völlig vergurkte UAC in Vista an Zeit bereits gekostet hat. Kryptische Meldungen ohne Aufschluß, was ich wirklich freischalten soll oder doch lieber nicht oder doch? Wie oft muß man VStudio im Vergleich zu XP starten, um das aufzuholen?



  • Swordfish schrieb:

    mit 2) und 3) muss man sich natürlich nicht beschäftigen, da natürlich auf den ersten Blick klar ist, was die Funktion system( ) macht, und was sleep ist... was kbhit( ) und dann noch mit ! davor ist, ist auch klar wie Kloßbrühe ... und natürlich ANSI C... 👎

    cheers, Swordfish

    Ok, mit system und so hätt man auch kurz schaun könn, aber system( "cmdlineaufruf" ); was is daran schwer, das is einfacher als 3 params auswendig lernen...

    sleep( millisecondsAsInt ); is auch nicht wunderlich scher und
    BOOL kbhit( void );
    ... ^^ ist das nicht doch irgendwie einfacher als die sachen aus der FAQ wenn man noch echt wenig ahnung hat?

    Joa gut, is halt nicht 100% ANSI C und es benötigt Windows, aber wie gesagt, erstmal einfacher zu verstehen.

    ➡ Finde ich

    Is ja keiner Gezwungen sowas zu machen 🕶


Anmelden zum Antworten