Hallo Welt-programm!???



  • Hallo erstmal an alle, ich bin neu in der C++ programmierung, habe mir gerade ein Buch gekauft und will anfangen C++ zu lernen. Jetzt habe ich bei diesem einfachen "HEllo World" Programm schon ein Problem. Nämlich zeigt er den Text zwar in der Konsole an, aber nicht länger als ein 10tel Sekunde!???Ich denke ihr könnt mir da auf jeden Fall helfen, also bedanke ich mich schon mal.
    Hier ist noch schnell mein Code:

    #include "stdafx.h"
    
    #include <iostream.h>
    void main() {
    
        cout << "Hallo Welt";
    
    }
    


  • #include <iostream>
    
    int  main() 
    {    
        std::cout << "Hallo Welt!";
        std::cin.clear ();
        std::cin.ignore ( std::cin.rdbuf () -> in_avail () );
        std::cin.get ();
        return 0;
    }
    

    mfg tHe pHreak



  • 1. Schmeiß das Buch weg und kauf dir ein neues. Dein Buch ist offensichtlich veraltet. So, wie das Programm da steht, entspricht es zumindest nichtmehr dem Standard.

    2. Starte das Programm einfach aus der Konsole heraus und nicht mit der IDE. Dann bleibt der Text auch stehen. Wenn du das nicht machen willst, dann lass den Benutzer am Schluss des Programms einfach ne Eingabe machen.



  • Danke!! Aber dann habe ich noch 2 Fragen, kennt jemand ein gutes und vorallem aktuelles Buch, das man sich als Anfänger kaufen sollte?
    Dann habe ich nich eine 2. Frage -in dem Code oben steht vor jedem cout-Befehl ein std:: -was hat das zu bedeuten -wozu dient dies?
    Nochmal danke für die schnellen ANtworten!



  • Original erstellt von Gregor:
    **1. Schmeiß das Buch weg und kauf dir ein neues. Dein Buch ist offensichtlich veraltet. So, wie das Programm da steht, entspricht es zumindest nichtmehr dem Standard.
    **

    Wegen solcher Kinkerlitzchen das Buch wegzuschmeissen, halte ich für übertrieben.



  • Original erstellt von DrGreenthumb:
    **
    Wegen solcher Kinkerlitzchen das Buch wegzuschmeissen, halte ich für übertrieben.**

    Ja, ok! Natürlich war die Aussage übertrieben. Aber es sollte ihm klar sein, dass das veraltet ist. ...ich glaube, mit dem aktuellen g++ würde das nichtmal kompilieren, kann aber sein, dass ich mich irre.



  • hätte es aber auch wie oben gemacht



  • Original erstellt von Priester:
    Danke!! Aber dann habe ich noch 2 Fragen, kennt jemand ein gutes und vorallem aktuelles Buch, das man sich als Anfänger kaufen sollte?
    Dann habe ich nich eine 2. Frage -in dem Code oben steht vor jedem cout-Befehl ein std:: -was hat das zu bedeuten -wozu dient dies?
    Nochmal danke für die schnellen ANtworten!

    Ich kann Dir das Buch C++ in 21 Tagen von Jese Liberty empfehlen.



  • Soweit mein Wissen nicht veraltet ist:
    std ist ein namespace, in dieser sind z.B. cout, cin, endl.... enthalten.
    Man kann durch
    using namespace std;
    das dauernde std:: umgehen, wird aber nicht gerne gesehen & empfohlen! Warum weiss ich nicht so genau, bin kein C++ Fan.



  • Original erstellt von <lala>:
    hätte es aber auch wie oben gemacht

    Jaaa? Auch "void main()"? Na dann Halleluja 😃



  • Original erstellt von HAR:
    Man kann durch
    using namespace std;
    das dauernde std:: umgehen, wird aber nicht gerne gesehen & empfohlen! Warum weiss ich nicht so genau

    Nur in Headern muss man leider immer das nervige std:: davor schreiben. 'Muss' nicht wirklich, aber wenn man den namespace in irgendnem Header öffnet kommt das nicht gut, wenn man sich später nicht mehr daran erinnert.



  • Hi,

    hier ist erklaert, warum es nicht so toll ist, 'using namespace std;'
    zu verwenden:
    http://userpage.fu-berlin.de/~ram/pub/pub_404/c++_namensraum_de

    mfg
    v R



  • Original erstellt von virtuell Realisticer:
    **hier ist erklaert, warum es nicht so toll ist, 'using namespace std;'
    zu verwenden:
    http://userpage.fu-berlin.de/~ram/pub/pub_404/c++_namensraum_de
    **

    Och nö, danke. Und am Ende kommt dann so'ne Katastrophe wie von tHe pHreak heraus.



  • was soll daran so schlimm sein anstatt

    int main(int argc, char **argv)
    {
    }
    

    für main ein void zu benutzen?



  • Original erstellt von stealth00:
    **was soll daran so schlimm sein anstatt

    int main(int argc, char **argv)
    {
    }
    

    für main ein void zu benutzen?**

    es ist laut Standard verboten



  • Och nö, danke. Und am Ende kommt dann so'ne Katastrophe wie von tHe pHreak heraus.

    Nojo, aber andererseits, warum den ganzen Namensraum oeffnen, wenn man nur ein
    paar Dinge daraus benoetigt?

    Letztlich ist das, denke ich, auch wieder ne Frage des Geschmacks

    mfg
    v R

    [ Dieser Beitrag wurde am 03.06.2003 um 16:35 Uhr von virtuell Realisticer editiert. ]



  • Original erstellt von virtuell Realisticer:
    **Nojo, aber andererseits, warum den ganzen Namensraum oeffnen, wenn man nur ein
    paar Dinge daraus benoetigt?
    **

    Ja, kommt halt drauf an. Ich schreib grundsätzlich using namespace std; unter die includes (sofern ich's denn brauche). Muss man ja nicht.

    Hab aber schon Quelltexte gesehen wo die Hälfte an Zeichen nur aus std:: bestand. So'ne Geschmacksverirrung geht zu weit 😉



  • Hab aber schon Quelltexte gesehen wo die Hälfte an Zeichen nur aus std:: bestand. So'ne Geschmacksverirrung geht zu weit

    Da stimm ich dir voll und ganz zu. Hab halt hier in der Firma in ner
    .cpp-Datei beispielsweise nur zwei Funktionen aus nem anderen Namespace
    benoetigt und da hab ich dann lieber ein

    using namespace::Func1;
    using namespace::Func2;

    stehen, statt den gesamten Namespace zu oeffnen. Wenn es aber zuviel wird,
    bin ich auch dafuer, den gesamten Namespace zu oeffnen

    mfg
    v R



  • Also irgendwie mache ich hier am Anfang glaube ich schon ziemlich viel falsch. Jetzt habe ich es mal mit using namespace probiert:

    #include "stdafx.h"
    #include <iostream.h>
    using namespace std;
    int main()
    {
        cout << "Hello World!\n";
    return 0;
    }
    

    Und dann kommt die Fehlermeldung: "error C2871: 'std' : Existiert nicht oder ist kein Namespace" -HÄÄ? Jetzt check ich gar nichts mehr!? Was ist denn an diesem Beispiel falsch?



  • Hallo,

    das Programm muss so aussehen:

    #include <iostream> // nicht iostream.h
    
    using namespace std;
    
    int main()
    {
        cout << "Hallo Standard c++" << endl;
    
        return 0;
    };
    

    mfg th3law


Anmelden zum Antworten