Dumme Frage
-
Dravere schrieb:
Walnut_Burl schrieb:
Janjan schrieb:
getchar() ist in cstdio deklariert.
Hmm...
bei mir geht es auch ohne das inkludieren dieses Headers.Das ist irrelevant. Der Standard schreibt vor, dass die Funktion in diesem Header deklariert ist. Es ist möglich, dass es bei dir indirekt über einen anderen Header eingebunden wird, allerdings ist es per Standard nicht garantiert und wenn du mal den Kompiler wechselst (sei es nur eine neue Version), ist es möglich, dass dein Programm nicht mehr kompiliert.
hmm OK kann gut sein...
ich benutze Visual Studio 2010.Ich werd es mal eben mit dem DevC++ Compiler und Code::Blocks prüfen.
-
Walnut_Burl schrieb:
Ich werd es mal eben mit dem DevC++ Compiler und Code::Blocks prüfen.
Soll ich mich wiederholen? Es ist völlig irrelevant, ob es dort funktioniert. Das einzige was hier zählt, ist der Standard.
Übrigens, zum automatischen Schliessen verhindern, gibt es noch einen FAQ Beitrag:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlGrüssli
-
Dravere schrieb:
Walnut_Burl schrieb:
Ich werd es mal eben mit dem DevC++ Compiler und Code::Blocks prüfen.
Soll ich mich wiederholen? Es ist völlig irrelevant, ob es dort funktioniert. Das einzige was hier zählt, ist der Standard.
Übrigens, zum automatischen Schliessen verhindern, gibt es noch einen FAQ Beitrag:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlGrüssli
Nein du sollst dich nicht wiederholen.
Ich wollte nur gucken ob es stimmt.
Wenn der Standard es so vorschreibt werde ich mich ab jetzt wohl daran halten!
-
@Walnut_Burl
Lass dich nicht so schnell glattbügeln.
Mit iostream hast du cstdio automatisch mit an Bord.
-
Mitleid schrieb:
@Walnut_Burl
Lass dich nicht so schnell glattbügeln.
Mit iostream hast du cstdio automatisch mit an Bord.
Dann belege mal diese Aussage mit dem Standard. Nach meinen Informationen steht davon überhaupt nichts im Standard. Würde mich zudem auch sehr überraschen. Falls du übrigens ein Kompiler willst, welcher dies nicht unterstütz, dann nimm den GCC 4.4.0 von TDM. Und was ist so kompliziert daran, den richtigen Header für die entsprechende Funktion einzubinden?
Grüssli
-
Wie würdest du denn z.B. §27.3 Absatz 1 interpretieren?
Und natürlich ist nichts daran kompliziert den Header einzubinden. Macht man ja eigentlich normalerweise.
Es geht mir nur darum, wenn du Walnut_Bur so überfährst, sollten die Fakten gesichert sein. Und da bin ich jetzt mal anderer Meinung.
Lass mich aber gerne überzeugen.Zum TDM Compiler kann ich nichts sagen.
-
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?
-
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
-
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.
-
Bemerkung am Rande:
Der Header<iostream>muss nicht mal<istream>oder<ostream>einbinden, obwohlstd::coutundstd::cindarin deklariert sind, welche vom Typestd::istream, bzw.std::ostream, sind. Wie das möglich ist, steht sogar im Standard (Stichwort:externund<iosfwd>). Darüber wurde auch mal ein Report beim Standard Komittee verfasst:
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-closed.html#343Grüssli
-
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!!!
