Hallo Welt



  • die antwort auf die frage steht schon 256 mal hier im forum.



  • Soweit ich weiß, ist das ".h" optional, also man kanns machen zum includen von headern und man kanns lassen, ich nehms zur sicherheit immer mit

    bei #include <file.h> wird eigentlich nur das standardverzeichnis für headerdateien durchsucht (inklusive unterverzeichnissen) bei #include "file.h" wird als erstes das aktuelle arbeitsverzeichnis nach der header durchsucht und anschließend das standardverzeichnis kkthxbye



  • Bei der Suche nach:

    'cout': nichtdeklarierter Bezeichner

    gab es keine Treffer.



  • Vorden schrieb:

    Soweit ich weiß, ist das ".h" optional, also man kanns machen zum includen von headern und man kanns lassen, ich nehms zur sicherheit immer mit

    Ich würds sicherheitshalber weglassen, weil es eben nicht optional ist.

    scooter: Es gibt keine Treffer weil cout höchstwahrscheinlich gefiltert wird, damit die Suche nicht überlastet wird, denn wie du dir sicher vorstellen kannst kommt das cout sehr häufig vor.

    #include <iostream>
    int main()
    {
      std::cout << "Hello, World\n";
    }
    


  • ?so viele Antworten und keine Hilfe 👎

    Schreib vor cout und endl std:: weil die im Standard namespace sind und du dieso so klassefizieren musst..

    Also

    std::cout << "hallo welt!" << std::endl;
    

    Oder du sparst dir das std:: und schreibst oben nach den includes

    using namespace std;
    

    Somit ist der ganze Standard namespace sichtbar 😉

    EDIT::zu langsam();



  • Hi,

    mit #include <iostream.h> lädst Du die C-Header, weshalb Dein Beispiel eigentlich funktionieren müsste, wenn Du das .h weglässt, also #include <iostream>, dann lädst Du die C++-Header, welche sich dann allerdings im Namespace std befinden. D.h., Du müsstest Dein Beispiel dann so abändern:

    #include <iostream>
    #include "stdafx.h"
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        cout << "hallo welt!" << endl;
    
        return 0;
    }
    

    oder ohne using namespace:

    #include <iostream>
    #include "stdafx.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        std::cout << "hallo welt!" << std::endl;
    
        return 0;
    }
    

    Sollte eigentlich dann so klappen.

    Der Unterschied bei den Includes ist der, dass die innerhalb von < und > in den, dem Compiler übergebenen Verzeichnissen gesucht werden und bei " und " wird relativ vom Arbeitsverzeichnis aus eingebunden, also:

    #include <header.h> - C-Header in einem dem Compiler übergebenen (bekannten) Verzeichnis
    #include <header> - C++-Header ... (s.o.)
    #include "header.h" - eigenes Header-File, welches relativ zum Arbeitsverzeichnis angegeben wird.

    (zumindest, was die C++-Std-Header angeht, gibt es den Unterschied zwischen <header.h> und <header>)

    @Alle, die es besser wissen: Sollte irgendwas falsch sein, dann plz korrigieren und nicht steinigen. 🙂



  • Danke Walli, das kann ich mir vorstellen.

    Bin jetzt über folgenden Link bei google gestoßen.
    Das wird's wohl sein, oder?

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_predir_the_.23.include_directive.asp



  • Da das hier aufgekommen ist hätt ich mal zwei fragen:

    Was hat es bitte mit dem using namespace auf sich?
    und dem std?...

    wenn man bei einem headerfile das .h weglässt dann lädt er eine c++ headerdatei und mit .h eine c headerdatei?

    blick da grad ned durch....

    greetz



  • Der std ist ein namespace, bzw. Namensbereich.
    Damit kann man mehrmals die gleiche Variable benutzen ohne die alte zu überschreiben(redeklarieren)

    Der std-namensbereich ist die Standardbibliothek von C++

    Und das mit dem C und c++ Headerfile ist nur bei dem Standardbibliotheken.

    Mit .h lädt der Präprozessor(der heute im Compiler mit drin ist) die veralteten Header und ohne die neuen.



  • danke, jetz hab ichs verstanden!



  • mantiz schrieb:

    mit #include <iostream.h> lädst Du die C-Header, weshalb Dein Beispiel eigentlich funktionieren müsste, wenn Du das .h weglässt, also #include <iostream>, dann lädst Du die C++-Header, welche sich dann allerdings im Namespace std befinden.

    iostream.h ist natürlich kein C-Header, sondern ebenfalls ein C++-Header. Allerdings einer, dessen Geschichte bis ca. 1985 zurückreicht, und der im Zuge der Standardisierung durch iostream (ohne h) ersetzt wurde.


Anmelden zum Antworten