Das Ausgabefenster der .EXE einer kompilierten C-Datei blinkt nur kurz auf



  • greymiller schrieb:

    FireFlow schrieb:

    Du kannst es auch ausm Command Prompt starten...

    Meinst du aus dem Compiler direkt starten ?

    Was muss ich dort eingeben ?

    (denn 2.exe funktioniert nicht, so hatte ich das Programm gennant, vorweg: es gibt diese Datei und sie funktioniert auch, nur das Fenster bleibt nicht stabil)

    Hihi, Windowsler... Naja wir ham ja alle mal angefangen.

    Was er meint:

    1. Klicke auf Start -> Ausführen
    2. Geb da "cmd" ein un drücke Enter.
    3. Gib in das Fenster, was da erscheint "cd <pfad zur exe>" ein und bestätige mit Enter
    4. Gib den Name der .exe ein und drücke Enter

    Edit:

    Versuchs mal alternativ mit folgendem Code:

    #include <stdio.h>
    
    int main( int argc, char* argv[] ) {
       printf( "Hallo Welt!\n" );
       system( "pause" );
    
       return 0;
    }
    


  • Das war dann auch noch die letzte gesuchte richtige Antwort.

    Jetzt habe ich sogar beide Probleme beantwortet bekommen.

    Testurteil: Sehr gut 😃

    EDIT zum EDIT:

    #include <stdio.h>

    int main( int argc, char* argv[] ) {
    printf( "Hallo Welt!\n" );
    system( "pause" );

    return 0;
    }

    Und was bedeutet argc ? argv[] ? und system () ?

    Ich weis das die ersten beiden Parameter sind und das system() kann ich aber nicht zuordnen, da aber nirgends auftauchen und dadurch in meinen Augen überflüssig erscheinen 😮

    Denn am einfachsten wäre es doch

    #include <stdio.h>

    main()
    {
    printf( "Hallo Welt!\n" );
    return 0;
    }

    wenn ich das ganze dann aus dem Kommandozeilen Modus starte.



  • greymiller schrieb:

    Und was bedeutet argc ? argv[] ? und system () ?

    Ich weis das die ersten beiden Parameter sind und das system() kann ich aber nicht zuordnen, da aber nirgends auftauchen und dadurch in meinen Augen überflüssig erscheinen 😮

    Das "argc" und das "argv" kannst du getrost weglassen und ignorieren. Damit wirst du unter Windows warscheinlich nich mit in berührung kommen. Das sind Parameter, die du über die Komandozeile dem Programm übergeben kannst.

    "system" ruft ein anderes Programm, oder einen Systembefehl auf. Hier den Befehl "pause".



  • #include <stdio.h>

    main()
    {
    printf( "Hallo Welt!\n" );
    return 0;
    }

    Ich habe es so probiert, es funktioniert auch ohne system ("pause")



  • Habs ja schon gesagt dass dein Problem gar kein Problem ist. 😉
    Kurt



  • Ihr sollte dann vieleicht den Hinweis in der FAQ ändern und/oder die hier beschriebenen Möglichkeiten mit aufnehmen/ergänzen.

    Denn wenn ich in jedes Programm den vom Forum gegebenen Ratschlag mit einprogrammieren muss, ist das mehr schlecht als recht.

    Ich habe natürlich keine Ahnung ob es nur in meinem Falle so einfach geht und nicht doch in den meisten Fällen mit eingearbeitet werden muss.

    Danke an alle.



  • -> system("pause") ist schlecht, schlecht, schlecht
    -> PAD hat dich angeschwindelt, die ersten beiden Zeilen sind nötig
    -> Kommandozeilenprogramme starte ich meistens nicht aus der Kommandozeile, und wenn mein Programm nur funktioniert wenn das der Fall ist...?

    Also die FAQ-Lösung ist schon korrekt und wurde 100 mal ausdiskutiert. Warum jedes Mal wieder 2 Seiten Diskussion mit verschiedenen unnötigen und weniger guten Vorschlägen kommen ist mir ein Rätsel 🙄

    MfG SideWinder



  • @Sidewinder, danke für die Korrektur. Ich hatte bisher keine Probleme damit, da ich entweder das Programm im Debugger ausführe,der behält das Fenster am Ende offen, oder es zum Test in einem Consolenfenster mit großem Scrollbuffer starte.

    Es gibt auch unter Windows eine Menge Programme denen auf der Kommandozeile parameter übergeben werden, sogar von Microsoft.

    Deswegen ist das "int main( int argc, char argv[]*" mit den Übergabeparametern sinnvoll, genauso wie der Prototyp int Sinn macht, damit kann man nähmlich dem aufrufenden Prozess den Erfolg/Misserfolg mitteilen.



  • Hi,
    Wieso ist

    #include <process.h>
    void main()
    {
    system("PAUSE");
    }
    

    eine schlechte Variante? Da ich das ab und an mal verwende, moechte ich gerne wissen, wieso das eine schlechte Variatnte ist *g*
    Danke im Vorraus!



  • im faq (glaub ansi, rund um oder c++) steht was zu system ;), zu void main braucht man wohl nix sagen 🤡



  • // EDIT: gabs schon, übersehen


Anmelden zum Antworten