C++ oder C++
-
erstes wird IMHO so nicht funktionieren da cout nicht bekannt ist.
#include <iostream> int main() { std::cout << "Hello World\n"; return 0; }
-
Versteh ich nicht? Wo ist cout nicht bekannt?
-
cout liegt im namespace std, das bedeutet (eigentlich) musst du entweder
std::cout...
oder
using namespace std; ... cout...
schreiben
-
Also, wenn du mit den neuen Klassen arbeiten möchtest:
#include <iostream> using std::cout; using std::endl; int main() { cout << "ich bin der nette Johannes." << endl; return 0; }
Nun zu deiner eigentlichen Frage:
Was ist der Unterschied zwischen "\n" und "std::endl"?
"\n" ist einfach nur ein Zeilenumbruch, während "std::endl" auch den Buffer leert.
Ich würde "std::endl" nutzen, da dann das Bild einheitlich ist.
-
Es gibt 2 wesentliche Unterschiede zwischen den beiden Programmen:
zuerst der kleine:V1 macht eine Neue Zeile, indem es
[cpp]
cout << "Hello World**\n**";
[/cpp]ein '\n' am Ende des Strings anhaengt. Programm zwei hingegen verwendet "endl".
Der Unterschied zwischen den beiden ist sehr gering. Im Grunde ist es besser (effizienter, schneller), mit '\n' neue Zeile zu machen. Aber das ist echt eine Kleinigkeit und jeder machts so, wie er's lieber macht: Geschmackssache eben
Der zweite, wesentlich wichtigere Unterschied:
PROGRAMM EINS IST NICHT GUELTIGES C++
Ganz krass gesagt. Ich hab jetzt leider keinen Link parat, der erklaert, warum man <iostream> ohne ".h" schreibt und wieso man "using namespace std;" verwenden soll, aber das gehoert sich so.
Frueher, in dunkler, grauer Vorzeit hat die Iostream-Datei noch "iostream.h" geheissen, und alles war ok. Als sich das ISO Komittee dann aber zusammengesetzt hat und C++ standardisiert hat, wurden einige Aenderungen in der C++ Standardbibliothek ( <== das sind iostream, vector, usw.) vorgenommen. Eine davon war, dass nun alles, was zu der Standardbibliothek gehoert, in den Namespace "std" zu legen.
Was genau Namespaces sind, wirst du sicher spaeter noch lernen. Fuer jetzt reichts fuer dich aus zu wissen, dass du, um auf die Elemente des Namespace std zuzugreifen (z. B. liegt "cout" in diesem Namespace), am Anfang deines Quellcodes ein "using namespace std;" schreiben musst.
Um die "alten" Bibliotheken, die nun nicht mehr gueltig waren, von den neuen zu unterscheiden, lies man am Dateiende einfach das ".h" weg. Die Iostream-Datei heisst jetzt also einfach nur noch "iostream" (statt "iostream.h").
Die "alten" Bibiotheken wurden als "veraltert" erklaert und sollen nicht mehr verwendet werden.Wenn du's also 100%ig korrekt haben willst, nimm die 2te Version
-
ich finde es unlogisch, dass man immer using namespace schreiben sollte, da man dann das konzept mit namespaces zur namenskonfliktsvermeidung teilweise wieder aufhebt da alle namen aus std abgekürzt werden.
-
Macht man auch nicht immer. Z.B. sollte man es nie in Header-Dateien machen. Aber bei kleineren Programmen kein Problem.
-
Lesco schrieb:
ich finde es unlogisch, dass man immer using namespace schreiben sollte
Musst du auch nicht. Genauso gut kannst du using Deklarationen verwenden (siehe hehejo).
-
Blue-Tiger schrieb:
Der Unterschied zwischen den beiden ist sehr gering. Im Grunde ist es besser (effizienter, schneller), mit '\n' neue Zeile zu machen.
Wieso solls besser sein? Ich hab mich in meinen Anfängen mal gewundert, wieso eine Ausgabe nicht erschien, auf die eine längere Rechnung folgte. Bei '\n' wird nicht geflusht, das heißt es wird nicht ausgedruckt, was du geschrieben hast.
Ich hab jetzt leider keinen Link parat, der erklaert, warum man <iostream> ohne ".h" schreibt und wieso man "using namespace std;" verwenden soll, aber das gehoert sich so.
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answ
-
erstmal danke für die ganzen guten beiträge!
da einige meinen v1 funktioniert nicht: ich hab diesen source code aus dem buch
jetzt lerne ich C++ von Markt und Technik ganz genau übernommen!
das buch hab ich dezember 04 gekauft!!! und es ist jetzt schon veraltet!ich würde ja gerne v2 verwenden aber weis jemand ein gutes buch oder großes tutorial im web??? (das buch kann ich auch kaufen)
mfg max