C++ für alle und ich will auch!



  • Ich möchte C++ lernen um dann später zu lernen wie man GBA Programme schreibt (Ich habe keine Vorkenntnisse mit Programmiersprachen) .
    Ich benutze Dev-C++ 4.9.0.8 und habe mir ein paar Tutorals heeruntergeladen.
    Soweit ich weiß ist es so üblich am Anfang immer ein „Hallo Welt“ Programm zu schreiben.
    Die Tutorials die ich mir heruntergeladen habe sind alle für C++ trotzdem unterscheiden sich alle Codes ein wenig von einander und funktionieren bei mir auch nicht.

    Das erste Tutorial ist von BadBlackJoker und er schreibt die Formel so:

    #include <iostream.h>
    #include <stdio.h>
    void main(void)
    {
    cout <<“Hallo Welt“;
    getchar();
    }
    

    Das zweite Tutorial ist von Andreas und er schreibt die Formel so:

    #include <iostream.h>
    void main ()
    {
    cout << „Hallo Welt!“ << endl;
    return;
    }
    

    Das dritte Tutorial ist von Volkard und er schreibt die Formel so:

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

    Das vierte Tutorial ist von Andreas Koch und er schreibt die Formel so:

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

    Das einzige das geht ist als Vorlage in Dev-C++ gespeichert und das geht so:

    #include <iostream>
    
    using namespace std;
    
    int main (int argc, char *argv[])
    {
      cout << "Hello World!" << endl;
      cout << "Press ENTER to continue..." << endl; 
      cin.get();
      return 0;
    }
    

    Es kann natürlich sein das ich mich vertippt habe, aber ich bin trotzdem sehr verwirf warum keins der Tutorials funktioniert und sich die Vorlage so sehr von den Rest unterscheidet.
    Habe ich das falsche Programm? Wie soll man den C++ da lernen?!
    Ich würde mich freuen wenn einer mir die Unterschiede zwischen

    ZB. „int main (int argc, char *argv[])” , “void main(void)“ oder „void main ()”

    Und andere Begriffe erklärt, was ich faltsch gemacht habe oder welches Programm\Tutorial\Buch ihr mir empfehlt.

    /edit: Code Tags - sfds



  • mit

    int main (int argc, char *argv[])
    

    kannst du dem Programm Parameter übergeben und einen Fehlercode zurück geben.

    das ist mit

    void main ()
    

    wie man sieht gibt die Funktion ja nichts zurück.
    void main() und void main(void) ist das gleiche.

    die Beispielprogramme haben ein paar Fehler:

    #include <iostream.h>
    

    ist alt und muss (sollte) ersetzt werden durch

    #include <iostream>
    

    und ansonsten fehlt überall der STD namespace, also schreibst du über der main funktion

    using namespace std;
    

    oder besser du schreibst

    std::cout für cout
    std::endl für endl
    

    sonst sehen die recht gut aus

    Gruß Mirauder Mo



  • siehe meine Signatur - da hast du noch n sinnloses Tutorial 🙂
    Allerdings ist meins Standardkonform - dh solche Sachen wie void main() passieren dir bei mir nicht 😉



  • JumpLink schrieb:

    Das dritte Tutorial ist von Volkard und er schreibt die Formel so:
    #include <iostream.h>
    void main()
    {
    cout<<"Hello, world!"<<endl;
    };

    volkard schreibt "void main()" 😮



  • Nicht schlecht, danke für die schnellen Antworten.

    Danke an Mirauder_Mo für die Erklärungen.

    Und Shade Of Mine, ich werde mir dein Tutorial ma reinzischen,
    vieleicht raff ich ja deinen.

    Und k1ro, nun ja, danke für deine Aufmerksamkeit.

    EDIT

    Hey Shade Of Mine!
    Im Kapitel reinterpret_cast ist ein fehler, man kann nicht auf vorwärts klicken. Ist mir beim durchfliegen ma so aufgefallen.
    VG von JumpLink

    EDIT 2

    und im Kapitel Operatoren Überladung I kommt man bei vorwärts nicht zu Operatoren Überladung II sonder zurück zu Friends



  • JumpLink schrieb:

    Im Kapitel reinterpret_cast ist ein fehler, man kann nicht auf vorwärts klicken.

    und im Kapitel Operatoren Überladung I kommt man bei vorwärts nicht zu Operatoren Überladung II sonder zurück zu Friends

    thx 👍
    ist schon ausgebessert.

    das nächste mal aber bitte per mail - denn hier im Forum kann ich nicht alles lesen 😉



  • JumpLink schrieb:

    Und k1ro, nun ja, danke für deine Aufmerksamkeit.

    ehm, ja, bitte bitte 😉
    mich hats nur gewundert, da void main, nunja... erklärung überflüssig.

    Eine Frage allerdings:
    was meinst du mit GBA ? Ich muss spontan an "GameBoy Advanced" denken, aber das kanns ja nicht sein, oder ?



  • Warum kanns nicht Gameboy Advance sein? Den kannst du auch in C oder C++ programmieren.



  • Artchi schrieb:

    Warum kanns nicht Gameboy Advance sein? Den kannst du auch in C oder C++ programmieren.

    hab ja auch nirgends das gegenteil behauptet oder hab ich ?

    Naja, es erscheint mir halt insofern komisch, da man ja dann dazu die ganzen spezielle sachen (libs, hardware (nicht zwingend) etc.) benötigt,
    man kann ja nich einfach so maln Spiel fürn GBA machen...

    Sollte die Antwort aber "ja" lauten wollte ich weitergehen und Fragen wie er das macht 🙂



  • volkard schreibt "void main()" 😮

    D.h. schrieb, das Tutorial ist alt und sowas macht er nicht. 😉



  • Mis2com schrieb:

    volkard schreibt "void main()" 😮

    D.h. schrieb, das Tutorial ist alt und sowas macht er nicht. 😉

    aber war int main() nicht schon immer Standard?



  • Mrr, das weiß ich gar nicht mal...

    Ist der Standard eigentlich online verfügbar? Ich höre so oft, wie die Profis hier die Paragraphen aufzählen...



  • Den musst du für US 18$ kaufen. Aber den draft gibt's online.

    Und standard ist es seit 98.



  • Hi!

    Nicht mehr ganz aktuell, war aber auch lange nicht mehr hier. Guck mal hier @Mis2com:
    Macht sowas per Mail!

    Code-Hacker

    <hume>Link entfernt!</hume>



  • c++eus schrieb:

    Mis2com schrieb:

    volkard schreibt "void main()" 😮

    D.h. schrieb, das Tutorial ist alt und sowas macht er nicht. 😉

    aber war int main() nicht schon immer Standard?

    Ja, void main war zumindest in C++ nie Standard. Ich denke das ist damals nach dem Motto - "A little inaccuracy sometimes saves a ton of explanation" - gelaufen. Naja, ich kenne keinen Compiler der void main nicht schluckt, aber trotzdem finde ich, dass int main mit kurzer Erklärung besser in das Tutorial gepasst hätte.



  • #include <iostream>
    using namespace std;
    
    int main()
    {
        cout <<"Hello World!"; // Kannst auch noch nach dem letzten " << endl hinschreiben
        // Vielleicht noch system("pause") - ist aber kein Standard
        return 0;
    }
    
    // So ging es bisher bei jedem compiler, den ich hatte !!
    


  • @Serious-Tobi:
    Das return 0; kannst du weglassen 😉



  • Dafür muss er eigentlich (praktisch nicht) <ostream> inkludieren, um Stringliterale ausgeben zu können.



  • Serious - Tobi schrieb:

    [ c o d e ]
    // So ging es bisher bei jedem compiler, den ich hatte !!
    

    Hi!

    Der Borland C++ Builder 1 kennt std nicht. Da musste man noch mit iostream.h arbeiten.

    @c++eus:
    Ja, könnte er weg lassen, aber das ist IMHO eine Sache des Stils.

    Code-Hacker



  • MaSTaH schrieb:

    c++eus schrieb:

    Mis2com schrieb:

    volkard schreibt "void main()" 😮

    D.h. schrieb, das Tutorial ist alt und sowas macht er nicht. 😉

    aber war int main() nicht schon immer Standard?

    Ja, void main war zumindest in C++ nie Standard. Ich denke das ist damals nach dem Motto - "A little inaccuracy sometimes saves a ton of explanation" - gelaufen. Naja, ich kenne keinen Compiler der void main nicht schluckt, aber trotzdem finde ich, dass int main mit kurzer Erklärung besser in das Tutorial gepasst hätte.

    naja, damals in der guten alten zeit war man nicht so standardfixiert.
    aber ich hab schon damals angemerkt, daß da was nicht stimmt. http://www.volkard.de/vcppkold/klasse_nimmspiel__void_main_oder_int_main.html#aa
    es war halt noch keine schande, eine zeile zu schreiben, die nicht auf jedem hypotetischen compiler klappt.



  • Heute funktioniert sie auf dem real existierenden gcc nicht.


Anmelden zum Antworten