!Problem als Anfänger: Undefined symbol 'cout' - Vermutl. Problem mit iostream!



  • Hallo!

    Habe ein Problem:
    Ich habe mir als Einsteiger neulich ein Buch für das erlernen von C++ gekauft.
    Habe den Borland Compiler ausprobiert, aber wenn ich den "Hallo Welt!"-Code

    // Listing 1.1
    
    #include <iostream>
    using namespace std;
    
    int main()
    {
    char name[80];
    
    cout << "Wie heissen Sie?" << endl;
    cin << name;
    
    cout << "Guten Tag" << name << endl;
    
    cin.get();
    return 0;
    }
    

    eingebe, kommen immer nur Fehlermeldungen wie:

    Error 2040 1: Declaration terminated incorrectly
    Error E2451 10: Undefined symbol 'cout' in function main()
    Error E2451 10: Undefined symbol 'endl' in function main()
    Error E2451 11: Undefined symbol 'cin' in function main()

    und andere.
    Mir wurde gesagt, er findet die iostream nicht. Ich solle sie einbinden?
    Und wie? Oder liegt es gar nicht a´n der iostream sondern an dem Compiler (übrigens: Ich hab schon Dev C++ heruntergeladen und ausprobiert, ist besser, da graf. Oberfläche (ich glaube so was nennt man IDE), aber da kommen auch solche Fehler mit einer undefinierten Funktion Main, den cout-Befehlen und so weiter...)
    KÖNNT IHR MIR HELFEN????
    Sonst muss ich das Buch wohl wegwerfen 😉
    DANKE AN ALLE!!!
    Bye,
    Marcel

    BITTE BEIM CODE ETWAIGE SCHREIBFEHLER ÜBERSEHEN, HAB ICH SCHON ALLES AUSPROBIERT, HAUT TROTZDEM NICHT HIN!!!!



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum Andere Compiler verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • cin >> name;



  • Hallo marcelswietza,

    also iostream ist eine Headerdatei, das heißt, dass du unbeding ein kleines .h nach iostream anhängen musst.

    also so:

    #include <iostream.h>

    das Ganze im Einselnen:

    #include: Das ist ein Präprozessorbefehl (nimm es erstmal so hin)...um Präprozessorbefehle einzubinden, musst du das Doppelkreuz (#) VOR der main-funktion angeben...Das include bedeutet, dass du eine Headerdate einbindest.

    <iostream.h>: Bedeutet, dass die Headerdatei iostream in den Quelltext mit eingebunden wird. Eine Headerdatei ist nix anderes als eine Auslagerungdatei, sozusagen wie die main-Funktion, nur eben in einer seperaten Datei....Die eckigen Klammern geben Aufschluss darüber, wo sich diese Datei befindet....Je nach Compiler müsste es ein Verzeichnis mit dem Namen include geben, wo alle headerdateien (includedateien) aufgeführt sind, sowohl für C als auch für C++....

    Hoffe, die Antwort war Aufschlussreich

    MfG,

    AZUBI-C



  • AZUBI-C schrieb:

    Hallo marcelswietza,

    also iostream ist eine Headerdatei, das heißt, dass du unbeding ein kleines .h nach iostream anhängen musst.

    also so:

    #include <iostream.h>

    das Ganze im Einselnen:

    #include: Das ist ein Präprozessorbefehl (nimm es erstmal so hin)...um Präprozessorbefehle einzubinden, musst du das Doppelkreuz (#) VOR der main-funktion angeben...Das include bedeutet, dass du eine Headerdate einbindest.

    <iostream.h>: Bedeutet, dass die Headerdatei iostream in den Quelltext mit eingebunden wird. Eine Headerdatei ist nix anderes als eine Auslagerungdatei, sozusagen wie die main-Funktion, nur eben in einer seperaten Datei....Die eckigen Klammern geben Aufschluss darüber, wo sich diese Datei befindet....Je nach Compiler müsste es ein Verzeichnis mit dem Namen include geben, wo alle headerdateien (includedateien) aufgeführt sind, sowohl für C als auch für C++....

    Hoffe, die Antwort war Aufschlussreich

    MfG,

    AZUBI-C

    im Prinzip richtig, aber in diesem speziellen Fall leider trotzdem falsch:

    die includes der C++ - Standardbibliothek (iostream, fstream, vector...) haben keine ".h"-Endung. Das ist eine Aenderung, die 1998 (IIRC) eingefuehrt wurde.

    Wenn der Compiler des Threaderstellers sehr sehr alt ist, dann kann "#include <iostream.h>" eine Loesung sein, aber im Normalfall ist schon das

    #include <iostream>
    using namespace std;
    

    die richtige Loesung. Und da der Threadersteller gesagt hat, er hat auch Dev-C++ ausprobiert, dessen Compiler aktuell ist, liegts wohl nicht daran.

    BTW: was fuer Fehler kamen denn, wenn du Dev-C++ verwendet hast?



  • AZUBI-C schrieb:

    also iostream ist eine Headerdatei, das heißt, dass du unbeding ein kleines .h nach iostream anhängen musst.

    blos nicht.
    http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answ

    @marcelswietza
    dein code müsste eigentlich funktionieren bis aus das es so heissen sollte
    [cpp]cin >> name;[/cpp]
    ist in deinem include verzeichniss die datei iostream?
    sind die pfade dort hin richtig gesetzt?

    [edit]
    mist zu langsam



  • Also ich werd es auch weiterhin verwenden, aber du hast recht...Is mir ganz entfallen



  • #include <iostream>
    using namespace std;
    

    trifft das nich auf sone freewarecompiler zu?



  • AZUBI-CII schrieb:

    trifft das nich auf sone freewarecompiler zu?

    was meinst? den namespace öffnen?
    in der alten iostream.h wurde glaub ich der namespace von haus aus schon geöffnet.



  • Also bei Dev-C++ muss man dat nich noch extra angeben...dann weiß ichs auch nich



  • HAB int main (void)
    eingegebe, hat geklappt!!!
    DAnke an alle!!!!



  • AZUBI-CII schrieb:

    Also bei Dev-C++ muss man dat nich noch extra angeben...dann weiß ichs auch nich

    wie gesagt kommt auf den header an den du verwendest. am besten du schaust dir mal beide an. es müssten beide dabei sein.


Anmelden zum Antworten