c++ Anfänger-Problem

Alpha93

Cadet 2nd Year
Registriert
Juni 2009
Beiträge
22
Hallo community,

bin totaler Programmier anfänger und habe mir ein Video angeguckt zum Einstieg.
Folgenden Code hab ich dort geschrieben:

#include "Hello World.h"
void main (int argc, char* argv[])
{
std::cout << "Hello,World";
return 0;
}

Im Video-TuT wird dann das Debuggen ausgeführt,welches im vid auch ganz normal klappt,bei mir kommt allerdings direkt eine Meldung:

http://www.bilder-space.de/show.php?file=22.06SKINWdAQkZFGzE6.jpg

Ich klicke auf "Ja" und das erscheint:

http://www.bilder-space.de/show.php?file=22.063haUyCceJOMiiCD.jpg

Ich weiß nicht weiter,Google gibt mir auch nichts her.
Kann mir jmd weiterhelfen?

Danke im Vorraus;)
 
Nimm mal oben '#include "Hello World.h" ' raus.
 
Zuletzt bearbeitet: (P.S. Fehler korrigiert)
#include <iostream> ganz am anfang der datei hinzufügen. und es heißt int main( int argc, char **argv ), ein void main() gibt es nicht.
 
Was soll das denn für ein Lernvideo sein, wo ein Programm mit #include "Hello World.h" beginnt !?

Das ist der grösste Schwachsinn den ich jemals gesehen habe.

Es sei denn du hast nicht richtig zugehört ;).
 
skeemo schrieb:
Was soll das denn für ein Lernvideo sein, wo ein Programm mit #include "Hello World.h" beginnt !?

Das ist der grösste Schwachsinn den ich jemals gesehen habe.

Es sei denn du hast nicht richtig zugehört ;).

Doch,richtig zugehört habe ich.Es ist ein TuT was im Programm als Starthilfe gegeben ist.
Ich hab den Code ja abgeschrieben aus dem Video das ist genau das,was die dort geschriebn haben.Bei der klappts auch!
Nunja,so klappt es jedenfalls!Danke euch.

Mal was andres:Was genau hab ich jetzt gemacht?:p

mfg
 
Alpha93 schrieb:
Ich hab den Code ja abgeschrieben aus dem Video das ist genau das,was die dort geschriebn haben.Bei der klappts auch!
der unterschied wird einfach sein, dass er/sie eine header-datei mit dem inhalt #include <iostream> erstellt hat. in c++ gibts nämlich header und code-dateien, welche durch den kompiler automatisch verlinkt werden. im header (*.h) stehen dabei alle definitionen, strukturen, hilfsklassen, aufzählungen, ... (optimalerweise) und in der code-datei (*.cpp) stehen alle deklarationen (heißt alles nach der deklaration der funktion). aber das sollte auch noch alles in tutorials erklärt werden und wenn lernst du es auch selbst ohne videos oder tutorials hinzu.
Alpha93 schrieb:
Mal was andres:Was genau hab ich jetzt gemacht?:p
in der include-datei "iostream" sind alle funktionen bezüglich der ein- (i) und ausgabe (o) von streams definiert. heißt also dass du etwas auf dem bildschirm ein- und ausgeben kannst. der namensraum dabei beläuft auf std, was du am std::cout erkennen kannst. wenn du das std:: weghaben willst, schreibst du am besten unter den includes using namespace std;. damit kannst du dann nämlich immer auf cout << "xyz" << endl ausweichen, anstatt std::cout << "xyz" << std::endl zu schreiben (std::endl ist dabei die leerung des ausgabepuffers und es fügt einen zeilenumbruch ein).
 
claW. schrieb:
der unterschied wird einfach sein, dass er/sie eine header-datei mit dem inhalt #include <iostream> erstellt hat. in c++ gibts nämlich header und code-dateien, welche durch den kompiler automatisch verlinkt werden. im header (*.h) stehen dabei alle definitionen, strukturen, hilfsklassen, aufzählungen, ... (optimalerweise) und in der code-datei (*.cpp) stehen alle deklarationen (heißt alles nach der deklaration der funktion). aber das sollte auch noch alles in tutorials erklärt werden und wenn lernst du es auch selbst ohne videos oder tutorials hinzu.

Versteh ich nicht. Wieso sollten die eine Datei erstellt haben die ich nicht erstellt hab?Ich hab doch den Anweisungen gefolgt?
in der include-datei "iostream" sind alle funktionen bezüglich der ein- (i) und ausgabe (o) von streams definiert. heißt also dass du etwas auf dem bildschirm ein- und ausgeben kannst. der namensraum dabei beläuft auf std, was du am std::cout erkennen kannst. wenn du das std:: weghaben willst, schreibst du am besten unter den includes using namespace std;. damit kannst du dann nämlich immer auf cout << "xyz" << endl ausweichen, anstatt std::cout << "xyz" << std::endl zu schreiben (std::endl ist dabei die leerung des ausgabepuffers und es fügt einen zeilenumbruch ein).

Also hab ich jetzt ein "Programm" programmiert,welches ein Fenster mit dem Inhalt "Hello World" öffnet oder wie soll ich das verstehen?
und zu dem "std":wieso sollte ich das weghaben wollen?

wie gesagt,bin ein totaler anfänger.

danke für eure antworten!
 
Alpha93 schrieb:
Versteh ich nicht. Wieso sollten die eine Datei erstellt haben die ich nicht erstellt hab?Ich hab doch den Anweisungen gefolgt?
ich weiß es nicht, anders kann das #include "Hello World.h" nicht zustande kommen.
Alpha93 schrieb:
Also hab ich jetzt ein "Programm" programmiert,welches ein Fenster mit dem Inhalt "Hello World" öffnet oder wie soll ich das verstehen?
genau
Alpha93 schrieb:
und zu dem "std":wieso sollte ich das weghaben wollen?
wenn du mal ein programm schreibst, welches insgesamt 50 ausgaben, 100 zeilenumbrüche und 20 eingaben hat, willst du 50 mal std::cout, 100 mal std::endl und 20 mal std::cin schreiben? oder die klasse string (#include <string>, lernst du später alles noch) - zeichenketten verwendet man oft. willst du dann (übertrieben) 1000 mal std::string a = "xyz"; schreiben? ;) es dient einfach der übersichtlichkeit des codes und der faulheit des programmierers.

um welches tutorial handelt es sich eigentlich? würde das gern mal wissen.
 
Also wenn dir dein Lernvideo nicht mal vermitteln konnte, was das Programm macht, dann ist das Video SEHR schlecht. Was ist das denn bitte für ein Video ?

Wenn du C/C++ programmieren lernen willst, dann solltest du dir lieber ein Buch zulegen, mit Videos lernt man nicht so toll finde ich.
 
Zitat:
Zitat von Alpha93 Beitrag anzeigen
Versteh ich nicht. Wieso sollten die eine Datei erstellt haben die ich nicht erstellt hab?Ich hab doch den Anweisungen gefolgt?

ich weiß es nicht, anders kann das #include "Hello World.h" nicht zustande kommen.

Ich glaub ich weiß was du meinst.Ich hab zuerst eine HelloWorld.h Datei erstellt,also eine Headerdatei,welchen Code ich dann bei der .cpp Datei eingefügt habe!



Zitat:
Zitat von Alpha93 Beitrag anzeigen
Also hab ich jetzt ein "Programm" programmiert,welches ein Fenster mit dem Inhalt "Hello World" öffnet oder wie soll ich das verstehen?

genau

Wo find ich die Datei? Ich denke beim Debuggen hab ich die Datei erstellt oder irre ich mich?
Im Verzeichnis des Programmes find ich die nicht.



Zitat:
Zitat von Alpha93 Beitrag anzeigen
und zu dem "std":wieso sollte ich das weghaben wollen?
wenn du mal ein programm schreibst, welches insgesamt 50 ausgaben, 100 zeilenumbrüche und 20 eingaben hat, willst du 50 mal std::cout, 100 mal std::endl und 20 mal std::cin schreiben? oder die klasse string (#include <string>, lernst du später alles noch) - zeichenketten verwendet man oft. willst du dann (übertrieben) 1000 mal std::string a = "xyz"; schreiben? es dient einfach der übersichtlichkeit des codes und der faulheit des programmierers.

um welches tutorial handelt es sich eigentlich? würde das gern mal wissen.

Ok,also nur für den Komfort.Hier gibts das TuT.

mfg
 
Zuletzt bearbeitet:
claW. schrieb:
es dient einfach der übersichtlichkeit des codes und der faulheit des programmierers.
Nein, nein, nein. Natürlich, auch. Aber nicht nur, das würde einen falschen Eindruck erwecken. Bis man dahin kommt, ist es noch ein weiter weg, aber die spannenden Stichwörter wären hier König Lookup/Argument Dependant Lookup(ADL), speziell auch im Zusammenhang mit Templates.
 
ah, das ist von MS direkt....

Also 2 Sachen.

1. Du hast tatsächlich nicht richtig aufgepasst. Im Video ist die "Hello World.h" nämlich sehr wohl im Projekt vorhanden ! Dann macht das natürlich "Sinn", die zu inkludieren. Ob das jetzt grundsätzlich so Sinn macht, sei mal dahingestellt, wobei wir gleich beim nächsten Punkt sind.

2. Mir kommt das Video beim kurzen durchzappen eher wie ein "New Features" Film vor. Damit lernst du garantiert nicht Programmieren, sondern vielleicht höchstens wie Visual Studio 2008 ganz grundlegend aufgebaut ist. Aber nur weil dir jemand zeigt wie man den Tennisschläger aus der Tasche holt und wo der Schlüssel für den Platz ist, wirst du kaum jemals das Tennisspielen lernen.
VS 2008 ist nur eine Entwicklungsumgebung und hat im Erstansatz nichts mit der Programmiersprache zu tun sondern stellt nur Tools (Editoren, Debugger, Compiler) als Paket zur Verfügung. C++ Programmieren kannst du theoretisch und praktisch auch mit dem Notepad und nem Kommandozeilen-Compiler...


Also : Kauf dir ein vernünftiges Buch für Anfänger in C oder C++, aber achte darauf dass im Falle von C++ nicht schon C vorausgesetzt wird.
Viele Tutorials die ich auf die schnelle im Netz gefunden haben bauen alle auf C-Grundkenntnissen auf und zeigen nur kurz Unterschiede zwischen C und C++ und steigen dann gleich voll ein.

Ich persönliche fand folgendes Buch ganz gut:
http://www.amazon.de/C-Programmieru...=sr_1_9?ie=UTF8&s=books&qid=1245675952&sr=8-9 welches wohl zZt nur noch gebraucht erhältlich ist...

Du wirst sehen, das ist alles gar nicht so schwer ;)

so und zu dieser Frage :

Wo find ich die Datei? Ich denke beim Debuggen hab ich die Datei erstellt oder irre ich mich?
Im Verzeichnis des Programmes find ich die nicht.

Nein die Datei wurde nicht erstellt, denn wie dir auch schon die Fehlermeldung deines ersten Bildes sagt, konnte das
Programm gar nicht compiliert / erstellt werden, weil es wie schon aufgezeigt Fehler enthält. Diese sollten übrigens "unten" im Compiler-Nachrichten-Fenster auch zu finden sein.
 
Zuletzt bearbeitet:
Wenn English kein Problem ist, gibt es auch ein gutes Einsteigerbuch bei MS - das ist nur zwei klicks von dem oben verlinkten "Tutorial" entfernt:

Als PDF bei MS und zum Vergleich das Buch
 
skeemo schrieb:
Nein die Datei wurde nicht erstellt, denn wie dir auch schon die Fehlermeldung deines ersten Bildes sagt, konnte das
Programm gar nicht compiliert / erstellt werden, weil es wie schon aufgezeigt Fehler enthält. Diese sollten übrigens "unten" im Compiler-Nachrichten-Fenster auch zu finden sein.

Habe es mit dem verbesserten Code versucht und da hat es auch geklappt,da wurd mir auch angezeigt wo die Datei ist.Allerdings öffnet sich beim Doppelklicken der Datei nur für vielleicht eine halbe sekunde ein kleines DOS-fenster wo ich leider nicht erkennen kann was drin steht.

Eigentlich müsste sich doch ein Textfenster öffnen?

Okay dass das TuT unsinnig ist,hab ich jetzt verstanden.Meint ihr denn ich sollte mit C anfangen oder macht es auch Sinn direkt mit C++ anfangen?

mfg
 
Alpha93 schrieb:
Meint ihr denn ich sollte mit C anfangen oder macht es auch Sinn direkt mit C++ anfangen?
Das hängt davon ab, ob du C oder C++ lernen willst. Willst du C lernen, fang mit C an. Willst du C++ lernen, fang mit C++ an. Das klingt zwar banal, bringt es aber auf den Punkt. Bestimmt geht hier dann wieder dieser "Man sollte C für C++ können"-Mist los. Handfeste Begründungen befinden sich in diesem Forum und im Netz, insbesondere auch die Empfehlung für ein sauberes C++ nicht mit C anzufangen. Es sind zwei verschiedene Sprachen und das eine hat mit dem anderen nicht so viel zu tun. Natürlich kann man mit C++ auch C programmieren (genauso wie mit Java BASIC - Liste lässt sich in allen Kombinationen beliebig fortsetzen), aber mit C geht's einfacher.
 
Zuletzt bearbeitet:
Ich fange die Diskussion nicht mehr an, nein :)

Aber zu deiner Frage warum das gleich wieder verschwindet :

Du führst die exe bestimmt aus dem Explorer heraus aus, stimmts ?
Nun ja, dein Programm macht folgendes : Es gibt "Hallo Welt" auf der Standardausgabe (Bildschirm) aus.
Sonst nichts, d.h. es wartet gar nicht auf Benutzereingaben oder irgendwas. Nach "return 0" ist das Programm einfach zu Ende, es kommt nix mehr, also ist auch der Task für Windows erledigt und das Fenster geht zu. Darum siehst du nix.

Jetzt könntest du natürlich einfach das Programm erweitern, um am Schluss auf sagen wir ein RETURN zu warten, das lernst du aber so oder so noch.

Sinnvoller erstmal folgendes :

Während dem Programmieren wirst du sehr oft in die Situation kommen, wo du gerade geschriebenen Code testen willst um zu sehen ob das bisher so funktioniert usw. In VS kann man immer das Programm auch "ausführen" (nennen wirs mal so). Ohne grosse Umwege wie, warum und weshalb, gebe ich dir den Tip, drücke einfach CTRL-F5 dann wird das Programm erstellt und die exe gestartet, aber du darfst am schluss noch "...eine beliebige Taste drücken" bevor das Fenster wieder zugeht.

Noch eine Möglichkeit wäre, zu dem Ordner wo sich die exe befindet in der Kommandozeile selber manuell zu navigieren und das Programm dort zu starten. Dann würde die Kommandozeile auch nicht zugehen.
 
Zuletzt bearbeitet:
Okay ihr habt mir auf jeden fall weitergeholfen,danke.

mfg,alpha
 
Zurück
Oben