Dumme Frage


  • Administrator

    Mitleid schrieb:

    Wie würdest du denn z.B. §27.3 Absatz 1 interpretieren?

    Zeig mir die genaue Stelle, wo dort steht, dass <cstdio> von <iostream> eingebunden wird. Dort steht nur, dass die Objekte in <iostream> mit den Ein/Ausgabe-Stream von C assoziert werden, welche man in <cstdio> finden kann.

    Mein Fakten sind gesichert. Wir hatten solche Diskussionen schon des öfteren und das Resultat war immer klar und dasselbe 😉

    Grüssli



  • Ohne den Header gibt es die Objekte nicht. Deklarierst du sie irgendwie selbst kommt es beim Einfügen des Headers zu einem Fehler. Kann man daraus nicht folgern, dass der Header dabei sein MUSS?

    Welche Diskussionen?


  • Administrator

    Mitleid schrieb:

    Ohne den Header gibt es die Objekte nicht. Deklarierst du sie irgendwie selbst kommt es beim Einfügen des Headers zu einem Fehler. Kann man daraus nicht folgern, dass der Header dabei sein MUSS?

    Da fragt man sich doch, wie es wohl TDM macht. Wer sagt denn, dass die Objekte in <cstdio> sein müssen? Es steht nur, dass es die gleichen Streams sein müssen, welche auch von den Funktionen in <cstdio> angesprochen werden. Man kann das intern allerdings auch noch weiter unterteilen. Es steht auch nirgends, dass die Funktionalität von <cstdio> über den Header <iostream> eingebunden werden muss. usw. usf.
    Nein, ich sehe keinen impliziten oder expliziten Hinweis darauf, dass <iostream> <cstdio> einbinden muss.

    Mitleid schrieb:

    Welche Diskussionen?

    Wann habe ich mich registriert? Das ist, glaube ich, auch schon ein paar Jährchen her. Also irgendwann in der Zeit zwischen meiner Registrierung und heute. Tut mir leid, ich bin zu faul, solche Diskussionen zu archivieren oder sie nun rauszusuchen 😉

    Grüssli


  • Mod

    Mitleid schrieb:

    Ohne den Header gibt es die Objekte nicht. Deklarierst du sie irgendwie selbst kommt es beim Einfügen des Headers zu einem Fehler. Kann man daraus nicht folgern, dass der Header dabei sein MUSS?

    Welche Diskussionen?

    Erstaunlich! Der GCC kennt cout wenn ich iostream einbinde, aber trotzdem kennt er getchar nicht. Dann muss wohl mein Compiler kaputt sein. Und trotzdem ist cout ganz klar mit stdout verbunden. Wie machen die das nur?
    [/Ironie]



  • Ihr seid nah dran mich zu überzeugen. Aber jetzt sehe ich mir diesen GCC mal selbst an. Um mir Arbeit zu ersparen könntet ihr die Ironie weglassen und einfach mal ausplaudern wie es gemacht wird.


  • Administrator

    Bemerkung am Rande:
    Der Header <iostream> muss nicht mal <istream> oder <ostream> einbinden, obwohl std::cout und std::cin darin deklariert sind, welche vom Type std::istream , bzw. std::ostream , sind. Wie das möglich ist, steht sogar im Standard (Stichwort: extern und <iosfwd> ). Darüber wurde auch mal ein Report beim Standard Komittee verfasst:
    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-closed.html#343

    Grüssli


  • Mod

    Mitleid schrieb:

    Ihr seid nah dran mich zu überzeugen. Aber jetzt sehe ich mir diesen GCC mal selbst an. Um mir Arbeit zu ersparen könntet ihr die Ironie weglassen und einfach mal ausplaudern wie es gemacht wird.

    So macht es der gcc:

    extern istream cin;           ///< Linked to standard input
      extern ostream cout;          ///< Linked to standard output
      extern ostream cerr;          ///< Linked to standard error (unbuffered)
      extern ostream clog;          ///< Linked to standard error (buffered)
    

    Und dann wird gegen die Standardbibliothek gelinkt, wo dann möglicherweise ein direkterer Zusammenhang zwischen cout und stdout definiert ist, aber das interessiert ja bei der Deklaration nicht.



  • Also ich hab ejetzt Visual C++ 2010 abe rhabe noch immer dasselbe Problem das Fenster öffnet sich kurz udn gibt kein Hallo Welt aus

    //C++ erstes Programm//
    //Einfaches C++ Programm

    #include <iostream>
    using namespace std;

    int main()
    {
    cout<< "Hallo, Welt!" << end1;
    cin.get();
    return 0;

    }

    Kann mir einer sagen was ich da falsch gemacht habe????



  • Der selbe Fehler wie am Anfang, auf den du auch schon hingewiesen wurdest. Und der Code wird auch sicher nicht kompilieren.



  • @SeppJ
    Jup, stimmt, man linkt einfach gegen irgendeinen Scheiß und hat keine Probleme mehr mit dem Namen. Mein Fehler. Da war ich gedanklich zu unflexibel.

    Ich knie vor euch großen Meistern. 😃

    Sorry für den Aufstand.



  • Entweder ich verstehe dich nciht jan jan oder du michnicht wo liegt dne genau der Fehler.

    Das is tmien Problem ich versteeh das nicht.......



  • obelixxx schrieb:

    wo liegt dne genau der Fehler.

    Du schreibst endl hinten mit der Zahl eins statt mit einem kleinen Buchstaben L.



  • loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool depp



  • EPIC FAIL!!!

    😃


Anmelden zum Antworten