Hello-World "Programm" - Wo ist der Fehler?



  • Hallo!

    Ich habe ein kleines Hello World-Programm aus einem Tutorial programmiert, das leider mind. einen Fehler hat. Da ich jedoch absoluter Newbie bin, frage ich euch, wo der Fehler steckt.
    Ich bin für jede Antwort dankbar!

    Code:

    #include <iostream.h>
    void main()
    {
    // Hello World
    cout<<"Hello, world!"<<endl;
    };
    


  • erlkoenig schrieb:

    Hallo!

    Ich habe ein kleines Hello World-Programm aus einem Tutorial programmiert, das leider mind. einen Fehler hat. Da ich jedoch absoluter Newbie bin, frage ich euch, wo der Fehler steckt.
    Ich bin für jede Antwort dankbar!

    Du kannst dieses Tutorial in die Tonne klopfen. Es ist völlig veraltet. Das Programm sollte eher so aussehen.

    #include <iostream>
    int main()
    {
    // Hello World
    std::cout << "Hello, world!" << std::endl;
    }
    


  • Woher zur h**** kommt iostream.h ? 🙄



  • Danke, einen Fehler findet der Compiler dort nicht mehr.

    Aber wie kann ich das Programm denn jetzt öffnen?
    Wenn ich auf die exe-Datei klicke, öffnet sich eine DOS-Box und verschwindet sofort wieder.



  • @ponto: najanajanaja... dann doch wohl eher so: wenn schon int main, dann aber auch mind. ein return 😉

    #include <iostream>
    int main()
    {
      // Hello World
      std::cout << "Hello, world!" << std::endl;
    
      return 0;
    }
    
    //oder gleich:
    #include <iostream>
    using namespace std;
    int main()
    {
      // Hello World
      cout << "Hello, world!" << endl;
    
      return 0;
    }
    

    bei iostream.h handelt es sich um einen veralterten header



  • du könntest ein getch (getcharacter einbauen) dann wartet das prog solange bis ein tastendruck erfolgte



  • @freshman

    IdR baut der Compiler bei der main nen return ein wenn es nicht explizit angegeben wurde. Das nennt sich dann implizites return.



  • Danke, einen Fehler findet der Compiler dort nicht mehr.

    Aber wie kann ich das Programm denn jetzt öffnen?
    Wenn ich auf die exe-Datei klicke, öffnet sich eine DOS-Box und verschwindet sofort wieder.

    Verzeiht mir bitte für diese Newbie-Frage,
    aber hat jemand eine Antwort?



  • @prolog: thanx'
    (aber standard!=idR!=immer und außerdem erlkönig.isBigFreshman()) 😉



  • freshman schrieb:

    @ponto: najanajanaja... dann doch wohl eher so: wenn schon int main, dann aber auch mind. ein return 😉

    #include <iostream>
    int main()
    {
      // Hello World
      std::cout << "Hello, world!" << std::endl;
    
      return 0;
    }
    

    Najanajanaja ... Zitieren wir mal den Standard 3.6.1.5:

    A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing

    return 0;
    

    Wir sagen auch nicht "wenn schon int main", sondern wir schreiben immer "int main".



  • @erlkönig: david_14 hat doch schonmal etwas vorgeschlagen: laß dein Prog noch eine dummy-Eingabe erwarten
    @ponto: immer int main ist sehr richtig 👍 daß return 0 'default' ist wußte ich echt nicht, sorry. schön etwas zu lernen. Ich dachte nur, da erlkönig ein ziemlicher Frischling ist....



  • erlkoenig schrieb:

    Danke, einen Fehler findet der Compiler dort nicht mehr.

    Aber wie kann ich das Programm denn jetzt öffnen?
    Wenn ich auf die exe-Datei klicke, öffnet sich eine DOS-Box und verschwindet sofort wieder.

    Starte das Programm aus der Shell heraus. "cmd" oder "command" je nach Windowsversion. Ich gehe mal davon aus, dass du Windows benutzt.



  • @Freshman: Und wie macht man das?



  • Ich benutze Win XP.

    Du meinst "Ausführen", oder?

    Wie müsste die entsprechende Zeile denn dann lauten?



  • unter windowsXp: start->programme->zubehör->eingabeaufforderung
    da gibst du dann die auszuführende datei inklusive dateipfad an.
    fertig.
    alternativ gehst du auf ausführen und gibst da cmd ein,dann wieder dateiname mit vollständigem dateipfad und fertig



  • 1. Dein Programm aus dem Compiler heraus starten, die fügen meistens noch ein "Press any key to continue" ans Ende dran.

    2. Wie gesagt aus der Eingabeaufforderung heraus starten.

    3. Dummy-Eingabe erwarten (Siehe Konsolen-FAQ "Automatisches Schließen verhindern")

    NICHT IM RELEASE: system("pause"); vor return aufrufen!

    MfG SideWinder



  • Ich habe es mal so versucht:

    Ausführen --> cmd c://helloworld.exe

    Der Einfachheit halber habe ich die Datei direkt in Laufwerk c gelegt.
    Aber da klappt irgend etwas immer noch nicht ...



  • Danke@SideWinder, aus dem Compiler klappt es!



  • aus der cmd.exe heraus mit C:\helloworld.exe 😉



  • Wenn die Datei in C:\ liegt und du "cmd" ausführst dann reicht auch bloß "HelloWorld.exe" :p

    Ich empfehle für Release-Versionen trotzdem die Konsolen-FAQ mit "Automatisches Schließen verhindern" 🙂

    MfG SideWinder


Log in to reply