PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Probleme beim Compilieren...



Impi
26.06.2009, 11:03
Guten Mittag :P
Also ich habe heut angefangen und nachdem ich mich müsam durch die Cpp Geschichte gelesen habe wollte ich mein erstes Programm erstellen nur wenn ich den Compiler ausführe spuckt er immer folgende Fehlermeldung aus:


paul@polle-desktop:~/Dokumente$ g++ HelloWorld.cpp
HelloWorld.cpp:1:22: Fehler: iostream.h: No such file or directory
HelloWorld.cpp:3: Fehler: expected `{' before »;« token
HelloWorld.cpp: In function »int std::main()«:
HelloWorld.cpp:7: Fehler: »cout« wurde in diesem Gültigkeitsbereich nicht definiert
HelloWorld.cpp: At global scope:
HelloWorld.cpp:9: Fehler: expected `}' at end of input
mein Quellcode sieht so aus



#include <iostream.h>

int main()
{
cout << "Hello World!\n";
return 0;
}
Hoffe ihr könnt mir helfen...
noch als Anmerkung ich bin Linux-User :)
Mfg Impi

drogii
26.06.2009, 11:06
wollte gerade sagen ohne "using namespace std;" geht das schonmal garnicht.

Sawyer
26.06.2009, 11:08
naja cout geht aus dem Grund nicht da du den standardnamespace nicht gesetzt hast

einfach mal erweitern:


#include <iostream>
using namespace std;

int main()
{
cout << "Hello World!\n";
return 0;
}bezüglich des Fehlerlogs:
Bin mir nicht sicher.... normal lasse ich das .h weg und schreibe nur #include <iostream> , dann müsste es auch compilen , wie gesagt ka wie das bei Linux/anderen Compilern ist.

MfG

Impi
26.06.2009, 11:43
paul@polle-desktop:~/Dokumente$ g++ HelloWorld.cpp
HelloWorld.cpp:3: Fehler: expected `{' before »;« token
HelloWorld.cpp:9: Fehler: expected `}' at end of input



#include <iostream>

namespace std;

int main()
{
cout << "Hello World!\n";
return 0;
}


btw ob iostream.h oder iostream ist egal beides funktioniert iwi nicht ?
hatte das auch schon ausprobiert.. also mit namespace std;
Mfg Impi

nathex
26.06.2009, 11:45
#include <iostream>

using namespace std;

int main()
{
cout << "Hello World!\n";
return 0;
}Soweit ich das richtig sehe, hast du das "using" vor "namespace std;" vergessen!

Eine Alternative Möglichkeit, ohne den "namespace std" inkludieren zu müssen, würde so aussehen:


#include <iostream>

int main()
{
std::cout << "Hello World!\n";
return 0;
}Allerdings musst du dann vor jeden Befehl, der im input-output stream vorkommt (cout, cin etc.) ein "std::" schreiben, was ziemlich unprofessionell ist, da es bei größeren Projekten jede Menge Schreibarbeit erfordert.

Pekel
26.06.2009, 11:49
Du musst "using namespace std;" schreiben:


#include <iostream>
using namespace std;

int main()
{
cout << "Hello World!\n";
return 0;
}Wenn du "using namespace std;" nicht verwenden würdest, müsste dein Code so aussehen:


#include <iostream>

int main()
{
std::cout << "Hello World!\n";
return 0;
}

Edit: Zu langsam // nathex ich glaube beim 2. Code hast du das falscche einegfügt :D

nathex
26.06.2009, 11:53
nathex ich glaube beim 2. Code hast du das falscche einegfügt :D
Jap, war grad noch am editieren, jetzt ist alles richtig!

Impi
26.06.2009, 11:55
ok jetz klappt es es wa in dem Buch nicht beschrieben das man "using namespace std;" setzen muss
danke für die Hilfe
Mfg

blackberry
26.06.2009, 12:43
Wenn in deinem Buch iostream.h steht, dann ist es klar, dass kein using gefordert ist, da iostream.h aus einer Zeit stammt, in der Namespaces noch nicht eingefürt bzw. implementiert wurden.

Um zu solchen Programmen kompatibel zu sein wurde bei den C++ Headern auch das .h weggelassen!

nathex
26.06.2009, 12:47
Das heißt er lernt entweder mit einem veralteten C++ buch, oder mit einem C buch?

blackberry
26.06.2009, 12:59
Eher aus einem veralteten C++ Buch, da C kein iostream kennt.

Impi
26.06.2009, 14:02
C++ in 21 Tagen heißt das ebook bin auch nicht begeistert davon hab aber zurzeit nix anderes...
Mfg

blackberry
26.06.2009, 14:14
Vielleicht hast du es ja noch nicht gesehen, aber hier gibt's ein paar Empfehlungen:
http://free-hack.com/showthread.php?t=31733


mfG. BlackBerry

Lynx_
26.06.2009, 14:15
Ich hab mir letzte Woche "C++ von A-Z" (2. Auflage, von Mai 2009) bestellt welches gestern angekommen ist. Bis jetzt kann ich das nur empfehlen falls du dir überlegst ein gescheites Buch zu kaufen.

mfg Lynx

nathex
26.06.2009, 14:26
Eher aus einem veralteten C++ Buch, da C kein iostream kennt.
Wusst ich nicht. danke für die info. Sieh dir mal dieses Ebook (C++ in 21 Tagen) an. Das scheint mir mehr als nur ein bisschen veraltet zu sein. Zumal ich sowieso nicht glaube, dass man c++ mal eben komplett in 21 tagen lernen kann...!

Ich hab mir letzte Woche "C++ von A-Z" (2. Auflage, von Mai 2009) bestellt welches gestern angekommen ist. Bis jetzt kann ich das nur empfehlen falls du dir überlegst ein gescheites Buch zu kaufen.Das benutze ich auch. Und ich kann es ebenfalls sehr empfehlen. Es wird auf jeden Bereich der Konsolenprogrammierung eingegangen, und im letzten kapitel wird auch das programmieren mit gui (wxwidgets in dem fall) nochmal deutlich erklärt.

C++ in 21 Tagen heißt das ebookDas wurd hier iwo mal gepostet und ich habs mal überfolgen (den Anfang)... Ich kann dir von dem Ebook nur abraten, das ist der größte Müll!
Wenn du C++ wirklich lernen willst, dann wird es dir die 50euro wohl doch wert sein oder?

Um noch andere Buchempfehlungen anzuschauen, klick auf den Link von BlackBerry

Lynx_
26.06.2009, 14:38
Wusst ich nicht. danke für die info. Sieh dir mal dieses Ebook (C++ in 21 Tagen) an. Das scheint mir mehr als nur ein bisschen veraltet zu sein. Zumal ich sowieso nicht glaube, dass man c++ mal eben komplett in 21 tagen lernen kann...!


Ich denke das soll nur die "Grundlagen" vermitteln. C++ kann man eben nicht mal so in 21 Tagen lernen (Man kann eigentlich nie alles Wissen weil ja immer mal etwas geändert wird) Wobei wie du schon gesagt hast es ziemlich stark veraltet ist.

Impi
26.06.2009, 14:41
Ne ich glaube kaum das ich mir nen Buch für 50Euro kaufen werde wenn ich Infomatik in 6 Wochen als Abi LK habe und außerdem dann die Möglichkeit habe mir in der Schul-Bibliothek Bücher zu leihen.. bei 7000 Büchern über den Computer wird sich bestimmt auch was über C++ finden ;)
MFG

nathex
26.06.2009, 14:41
Ich denke das soll nur die "Grundlagen" vermitteln.
Das wäre eine logische Erklärung.

Wobei wie du schon gesagt hast es ziemlich stark veraltet ist.
Und das ist es, was das ebook unbenutzbar macht. Da stehen einige Sache drin, die auf garkeinen Fall funktionieren...