Anfänger Frage



  • Hey,
    ich bin ein totaler Anfänger in Sachen C++, und bin gerade dabei ein tutorial durchzuarbeiten :

    http://de.geocities.com/throni3/cpp/Kapitel_1.html

    allerdings bleibe ich auch schon bei Kapitel 1 stecken, und zwar bei der Aufgabe
    mit "cout", ich habe es genauso eingegeben wie es dort beschrieben ist aber es funktioniert trotzdem nicht...

    es sieht bei mir so aus:

    int main(void)
    {
    cout << ´´Hallo ihr da draussen´´;
    return 0;
    }

    //Das ist meine erste Notiz

    ich finde einfach nicht den Fehler...

    PS.: ich habe es erst mit " probiert doch da zeigte er mir den Text immer in Rot an, nur bei `` und ´´ blieb der text schwarz...

    Danke im vorraus für eure Hilfe ! 🙂



  • er soll den text auch rot anzeigen 😉 das bedeutet das das eine Zeichenkette ist

    so MUSS es aussehen

    #include<iostream>
    
    using namespace std;
    
    int main() //hier kein void
    {
        cout<<"Hallo Welt"<<endl;
        return 0;
    }
    

    edit: Das Tutorial ist Schei***

    nimm lieber das hier:
    http://tutorial.schornboeck.net/inhalt.htm



  • Firefighter, wenn Du schon versuchst, korrekten C++ Code zu posten, dann bitte ich Dich, das auch vernünftig zu tun:

    #include<iostream>
    
    int main()
    {
        std::cout << "Hallo Welt" << std::endl;
    }
    

    🙂



  • Wieso der Code ist vollkommen korrekt, nur das ich ihm noch gleich ein bisschen Arbeit abgenommen habe.
    Und int main ist eine Funktion einen Rückgabewert hat, warum nicht dran halten 🙂



  • Natürlich ist der Code korrekt, ich habe ihn nur ein bisschen optimiert, und gezeigt, wie die bessere Version davon aussieht 😉
    Und der C++ Standard schreibt nicht vor, dass main einen Wert zurückgeben muss. Da dieser sonst auch nicht von Bedeutung ist, ist es völlig sinnfrei, trotzdem einen zurückzugeben.

    (Klar, ist jetzt auch egal, nur damit du weißt)



  • mikey schrieb:

    Natürlich ist der Code korrekt, ich habe ihn nur ein bisschen optimiert, und gezeigt, wie die bessere Version davon aussieht 😉

    gut std::cout ist besser als using..., aber was ist daran optimiert?



  • Na die Codegröße ist optimiert 😉 Und wenn wir uns nicht nur auf das eine Hello World Beispiel beschränken, dann werden auch noch mögliche Gültigkeitsbereich-Konflikte vermieden.



  • also ersma danke^^ aber der öffnet das fenster jetzt nur ganz kurz ist das richtig ? muss das nich eig offen bleiben ? 😕



  • Ne, du hast es ja nicht explizit programmiert, dass das Fenster offen bleiben soll. Das Programm macht nur das, was du programmiert hast, und nicht mehr. Damit lässt sich das sofortige Schließen des Fensters verhindern:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html



  • @mikey

    hast recht, das es bei größeren Projekten da zu Problemen kommen könnte 🙂
    Nur um nochmal auf die main geschichte zurückzukommen, wenn wir ihm von anfang an richtig zeigen das eine Funktion was zurückgibt, merkt er es sich vieleicht leichter:)
    Aber ist ja auch egal, er hat es verstanden und wir brauchen ja nicht über ein Hello World programm diskutieren 😃

    achja mikey, schöne Sig 🙂



  • Diskussionen eröffnen Horizonte, von daher finde ich es nicht verkehrt, auch mal über solche banalen Dinge zu diskutieren. Jetzt weiß der Threadersteller, dass main laut Definition im Gegensatz zu regulären Funktionen keinen Wert zurückgeben muss, und gut. 🙂

    Firefighter schrieb:

    achja mikey, schöne Sig 🙂

    Danke, kann ich bei Deiner nur bestätigen.



  • so jetzt hab ichs hinbekommen THX 😃



  • inwiefern ist std::cout zum using optimiert?
    kann mir das mal bitte genau erklärt werden



  • es hat nix mit optimiert zu tuen, da hat sich mikey nur verschrieben. Es ist damit gemeint das mit std:: namenskonlfikte eingegrenzt werden können wenn es sich um ein größeres projekt handelt.
    Stell dir vor du hast ein großes projekt in dem du 1 selbstgeschrieben swap funktion hast, und dann gibt es noch die aus dem std::

    jetzt willst du deine swap benutzen, nun weiß der compiler natürlich nicht welche swap er nehmen soll, weil es gibt ja zwei ;)Und so musst du ihm noch sagen aus welchem namensraum. Wenn du nun aber oben hinschreibst, using namespace std; und dann wieder deine swap benutzen willst, weiß der compiler immernoch nicht welche swap, weil er kann ja nicht riechen das er jetzt deine nehmen muss. Wenn du ihm aber explizit sagst:

    std::swap(..) weiß er das er die swap aus dem std namensraum nehmen soll


Anmelden zum Antworten