PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmieren lernen, aber wie???


Quantar
2003-08-17, 12:12:06
so, nun wird mal zeit. in vielen bereichen hab ichs ganz gut drauf aber davon hab ich nicht die geringste ahnung. wie fängt man damit am besten an? links, tutorials, tipps?
mfg
kelvin

Gast
2003-08-17, 13:16:33
http://www.forum-3dcenter.org/vbulletin/showthread.php?threadid=24424

... der Sticky in diesem Forum :eyes:

Quantar
2003-08-17, 13:23:11
ah, ok, hab grad die tomaten von den augen genommen

Gast
2003-08-17, 15:19:42
http://www.c-plusplus.de/
http://www.volkard.de/vcppkold
http://www.c-plusplus.de/c___1.htm

Spieleprogger fan
2003-08-17, 16:29:52
Falsch, -100 Punkte! Ein Kompiler ist ein Programm, d.h. das Programm selbst heißt Kompiler. zwischen C++ und VC++ besteht ein Unterschied: VC++ ist eingeschränkt. Ist für einfache Programme gedacht, da diese Sprache nicht so schnell abstürzt, wie C++, denn hier kann der Kompiler eibnige sachen korrigieren, was auch die Eingeschränktheit erklärt. Und ein Beweis dafür, dass VC++ kein Kompiler ist: Es gibt Kompiler für C++ und für VC++. und einen Kompiler für einen Kompiler gibt es meines Wissens nicht.
VC++ ist sehr wohl eine Sprache. eine, die von Microsoft etwickelt wurde. Und ich meine auch nicht die Sprache, die abstürzt, sondern die Anwendung, die man damit schreibt, oder auch Fehler in der Sprache. Und der Kompiler dazu korrigiert kleine Fehler sehr wohl. Und Professionelle Anwendungen vielleicht, aber C++ ist einfach mal empfehlenswerter als VC++, da bei VC++ einige Sachen weggelassen wurden. Und ich meinte mit "Kompiler für Kompiler" nicht etwa Kompiler, mit denen man Kompiler programmieren kann, denn das ist mir schon klar, dass man Kompiler nicht in Binärcodes schreibt, sondern ich meinte, dass man mit einem Kompiler keinen anderen Kompiler in Binärcodes übersetzen kann, falls du jetzt verstehen solltest, was ich meine.
man kann auch sagen, dass man den String in Char-Array umwandeln kann, dann die einzelnen Elemente durchsuchen könnte, das ist so, als würde dich einer fragen "Wo gehts'n hier nach Rom?" Und jemand sagt "Die Autobahn entlang nach München und dann über die Alpen" und du dann sagst "Ne, halt, moment, es geht auch ohne
Autobahn (Schleifen): Nimm nen Kompas, lauf immer richtung Süden durch die ganzen Wälder". So in der Art, wobei die Autobahn viel schneller geht zu fahren. (Also Schleifen schneller zu programmieren). Klingt vielleicht wirr, aber wer's versteht weiß auch, warum immernoch Schleifen zu empfehlen sind.
ich programmiere nunmal in Windowsprogrammierung, und da kann man Strings einfach so addieren.

Demirug
2003-08-17, 16:34:37
Hä??? Was soll uns das jetzt sagen?

liquid
2003-08-17, 17:21:57
Und ich dachte immer VisualC++ (VC++) wäre ne integrierte Entwicklungsumgebung (IDE)... *jetzt ganz verwirrt sei* ;)

cya
liquid

Ganon
2003-08-17, 17:40:00
Original geschrieben von Spieleprogger fan ich programmiere nunmal in Windowsprogrammierung, und da kann man Strings einfach so addieren.

Obwohl dein Text nicht in diesen Thread reinpasst...

Was hat das mit Windows zu tun? Strings addieren ist mittlerweile Standard ANSI C++! So steht das zumindest in dem Buch vom C++-Erfinder!


#include <iostream>
#include <string>
using namespace std;

int main()
{
string Text1,Text2,Text3;
Text1="Hallo";
Text2="Welt";

Text3=Text1+" "+Text2;

cout << Text3 << endl;

return 0;
}



So ich hoffe das läuft auch! *ggg*
*test-test-test-on-OSX-with-g++*

Jups! Läuft!

@liquid

Ja ist es auch! Nur ist dort das C++ ein bisschen "erweitert" worden um ein paar "Windows-Verbesserungen"!

liquid
2003-08-17, 17:56:05
Ganon, das sollte eigentlich ironisch rüberkommen ;)

Ganon
2003-08-17, 18:09:40
Original geschrieben von liquid
Ganon, das sollte eigentlich ironisch rüberkommen ;)

Achso! Naja! ---->>>> ;)

Ist wichtig sowas! *ggg*

liquid
2003-08-17, 18:48:28
So, habs erstmal korrigiert!

@Topic:

C++ ist die Sprache
C ist auch eine Sprache

VC++ ist eine Anwendung (IDE)

GCC ist auch eine Anwedung (Compiler)

Natürlich besitzt VC++ auch einen Compiler, aber VC++ ist halt nicht NUR ein Compiler (+Linker für alle Korinthenkacker ;)) sondern auch gleich eine komplette Entwicklungsumgebung.

Bei GCC ist das etwas anders. Zwar ist der GCC bzw. die GCC auch kein Compiler (singular), sondern eine Sammlung von Compilern (deswegen auch GNU Compiler Collection), aber er ist KEINE Entwicklungsumgebung, sondern ist wirklich nur für das Compiling (jaja, ich hab das Linken vergessen) zuständig.

cya
liquid

zeckensack
2003-08-17, 18:49:03
Ich möchte eindringlich darum bitten, die Ausführen von Spieleproggerfan zu ignorieren ... naja, als Satire taugt's vielleicht :D

Aqualon
2003-08-17, 19:18:32
Original geschrieben von zeckensack
Ich möchte eindringlich darum bitten, die Ausführen von Spieleproggerfan zu ignorieren ... naja, als Satire taugt's vielleicht :D

Selbst ich mit null C++ Erfahrung hab nach 2 Zeilen die Hände überm Kopf zusammengeschlagen und mir den Rest dann lieber gleich erspart *gg*

Und ob das noch als Satire tauglich ist? :grübel:

Ok, wahrscheinlich schon :D

Aqua

Quantar
2003-08-18, 13:49:22
noch mal ne frage zu dem eigentlichen thread: hab jetzt schon ein paar tutorials überflogen, steh aber trotzdem noch ein bissie aufm schlauch. hab M$ visual studio 6.0 und möchte einfach mal ein wenig den umgang damit lernen. hat da nicht noch jemand n link ??
mfg
kelvin

Siegfried
2003-08-19, 04:43:35
http://www.tif-masters.de/progra/c/kurs1/kurse.html

damit lerne ich seit gestern
is ne gute anleitung finde ich

cube
2003-08-21, 17:41:40
Hallo,

da ich auch etwas Programmieren lernen möchte, habe ich mal in diesen Thread und ein paar andere reingeguckt, womit ich am besten anfange.
Dabei ist mir aufgefallen, dass es soweit ich das jetzt beurteilen kann nicht DIE Programmiersprache gibt mit der man alles machen kann.
Außerdem sei ein Ziel wichtig, damit man das Programmieren nicht gleich wieder aufgibt, also habe ich mir gedacht, dass ein Tetrisklon garnicht schlecht wäre.
Ich denke, dass sollte nicht schwer sein, oder liege ich da falsch?
Meine Haupfrage ist nun, was ich mir um diesen Tetrisklon zu programmieren, durchlesen muss.
Welche Programmiersprache wäre für sowas am besten geignet?
Wenn möglich sollte es eine Sprache sein mit der man vielleicht später nochmals "etwas anfangen" kann.
Es wäre natürlich ideal, wenn das "Material", was ich dazu lesen müsste um die notwendigen Kenntnisse zu erlangen, kostenlos ist.
Ich habe vor einigen Jahren auch mal in der Schule mit Pascal angefangen, aber sonst keine weiteren Erkenntnisse bzgl. des Programmierens.
Den Sticky habe ich mir zwar schon durchgelesen, allerdings haben mir die Fülle an Links als Anfänger auch nicht viel weter geholfen.
Ich würde mich sehr freuen wenn mir jemand antworten könnte.:)

Ganon
2003-08-21, 22:36:13
Original geschrieben von cube
Dabei ist mir aufgefallen, dass es soweit ich das jetzt beurteilen kann nicht DIE Programmiersprache gibt mit der man alles machen kann.

Außerdem sei ein Ziel wichtig, damit man das Programmieren nicht gleich wieder aufgibt, also habe ich mir gedacht, dass ein Tetrisklon garnicht schlecht wäre.
Ich denke, dass sollte nicht schwer sein, oder liege ich da falsch?

Meine Haupfrage ist nun, was ich mir um diesen Tetrisklon zu programmieren, durchlesen muss.

Welche Programmiersprache wäre für sowas am besten geignet?

Ich würde mich sehr freuen wenn mir jemand antworten könnte.:)

1. Doch! Man kann mit einer "komplexeren" Programmiersprache (also jetzt keine Skriptsprachen oder so was) so gut wie alles machen. Die Programmiersprache entscheidet da nur wie kompliziert das wird. Ich meine du kannst "Hello World" mit jeder Sprache ausgeben! Nur wird es in Assembler wohl komplizierter sein als in C!

2. Stecke deine Ziele nicht zu hoch! Lerne erst mal Grundlegende sachen wie Ein- und Ausgabe, Schleifen, Abfragen usw.!
Tetris ist vom Prinzip her so simpel das es wieder schwer ist. Man kann es in der Konsole machen, oder auch mit OpenGL!

Tetris mag zwar simpel aussehen nur denke mal an folgende Sachen:

- Wie erzeugst du die Objekte?
- Wann ist denn die Reihe voll?
- Wann stoppt ein Objekt (kommt es am Boden auf oder bleibt es hängen)?
- Wie machst du es das die verschiedenen Objekte zufällig kommen?
- Wann leerst du eine oder mehrere Reihen?
- Wo positionierst du die anderen Objekte wenn eine Reihe weggenommen wurde?

Jetzt mal nur als Beispiel! Am besten erst mal eine Grundlage schaffen.

3. Wie gesagt! Lerne erst mal die Grundlagen!

4. Das musst du wissen. Geeignet sind alle Sprachen!

liquid
2003-08-21, 22:54:47
Das erinnert mich irgendwie an dieses Pong-Spiel in OGC. Keine Ahnung wieso, aber irgendetwas in der Art muss ich auch in meine Engine einbaun. Quasi das Spiel im Spiel, ob es nun Pong oder Tetris ist sei mal dahingestellt :D

cya
liquid

Gast
2003-08-23, 04:15:20
@Spieleprogger fan:

Allerunterste Schublade. :madman:

cube
2003-08-23, 14:36:26
Original geschrieben von Ganon
1. Doch! Man kann mit einer "komplexeren" Programmiersprache (also jetzt keine Skriptsprachen oder so was) so gut wie alles machen. Die Programmiersprache entscheidet da nur wie kompliziert das wird. Ich meine du kannst "Hello World" mit jeder Sprache ausgeben! Nur wird es in Assembler wohl komplizierter sein als in C!

2. Stecke deine Ziele nicht zu hoch! Lerne erst mal Grundlegende sachen wie Ein- und Ausgabe, Schleifen, Abfragen usw.!
Tetris ist vom Prinzip her so simpel das es wieder schwer ist. Man kann es in der Konsole machen, oder auch mit OpenGL!

Tetris mag zwar simpel aussehen nur denke mal an folgende Sachen:

- Wie erzeugst du die Objekte?
- Wann ist denn die Reihe voll?
- Wann stoppt ein Objekt (kommt es am Boden auf oder bleibt es hängen)?
- Wie machst du es das die verschiedenen Objekte zufällig kommen?
- Wann leerst du eine oder mehrere Reihen?
- Wo positionierst du die anderen Objekte wenn eine Reihe weggenommen wurde?

Jetzt mal nur als Beispiel! Am besten erst mal eine Grundlage schaffen.

3. Wie gesagt! Lerne erst mal die Grundlagen!

4. Das musst du wissen. Geeignet sind alle Sprachen!

Wenn prinzipiell alle Sprachen geeignet sind, könnte ich dann auch z.B mit C++ anfangen, da ich den Eindruck gewonnen habe, dass es sich dabei um eine ziemlich universelle und verbreitete Sprache handelt?

Ich habe mir schonmal ein paar Tutorials zur C++ Programmirung testweise angeschaut, allerdings beginnen die meisten sinbgemäß mit:
Schreben sie mal dieses Programm:
#include <iostream.h>
usw.
Dazu brauche ich ja einen Kompiler, also ein Programm der diesen Code übersetzt und ein Programm daraus "macht", oder?

Wo bekomme ich so einen Kompiler her? Worin unterscheiden sich z.B dieser MS Visual C++ Kompiler von dem von Borland oder anderen?

Ich weiß, wie gesagt, garnicht richtig was ich brauche um z.B C++ zu erlernen und wo ich es herbekomme. Diese Tutorials waren z.B auf
http://www.c-plusplus.de/ , die oben schon genannt wurde, aber was brauche ich noch, was ist sinnvoll?

Die Fragen sind jetzt nicht zwingend an dich gerichtet, vielleicht könnte auch jemand anders ein paar Worte darüber verlieren.

liquid
2003-08-23, 15:13:22
Für den Einsteiger würde ich den Dev-C++ empfehlen.
Link (http://www.bloodshed.net/dev/devcpp.html)

In diesem Falle musste auch kein Geld ausgeben, was bei Borland und VC++ ja nicht der Fall ist (da kann es richtig teuer werden).

Dev-C++ ist allerdings NICHT der Compiler, sondern die IDE (integrierte Entwicklungsumgebung). Jedoch hat Bloodshed gleich einen passenden Compiler dazugepackt, nämlich den MinGW. Dies ist ein Port des berühmten GCC aus der Unix-Welt.
Mit diesem Paket kann man schon anfangen die Tutoriale durchzuarbeiten und sich erste Kenntnisse anzueignen.

cya
liquid

Ganon
2003-08-23, 15:24:10
Original geschrieben von cube
Wenn prinzipiell alle Sprachen geeignet sind, könnte ich dann auch z.B mit C++ anfangen, da ich den Eindruck gewonnen habe, dass es sich dabei um eine ziemlich universelle und verbreitete Sprache handelt?

Ich habe mir schonmal ein paar Tutorials zur C++ Programmirung testweise angeschaut, allerdings beginnen die meisten sinbgemäß mit:
Schreben sie mal dieses Programm:
#include <iostream.h>
usw.
Dazu brauche ich ja einen Kompiler, also ein Programm der diesen Code übersetzt und ein Programm daraus "macht", oder?

Wo bekomme ich so einen Kompiler her? Worin unterscheiden sich z.B dieser MS Visual C++ Kompiler von dem von Borland oder anderen?

Ich weiß, wie gesagt, garnicht richtig was ich brauche um z.B C++ zu erlernen und wo ich es herbekomme. Diese Tutorials waren z.B auf
http://www.c-plusplus.de/ , die oben schon genannt wurde, aber was brauche ich noch, was ist sinnvoll?

Die Fragen sind jetzt nicht zwingend an dich gerichtet, vielleicht könnte auch jemand anders ein paar Worte darüber verlieren.

1. C++ lerne ich auch gerade! Ist eigendlich DIE Sprache! Aber da teilen sich die Meinungen! *ggg*;)

2. Ja Kompiler brauchst du! Wie gesagt unter Windows ist als kostenlose alternative Dev-C++ nicht schlecht!

3. Jeweils spezielle Firmenanpassungen usw.! Einige Sachen wurden hinzugefügt, bzw. vereinfacht! Aber da geht die Portabilität komplett flöten und du bist immer auf dieses eine Programm angewiesen. Z.B. kannst du nicht einfach ein Borland-Projekt nehmen und mit Visual-C++ weitermachen.

4. Sollte eigendlich reichen. Vielleicht noch ein Buch für Anfänger, damit man nicht immer im Netz rumsuchen muss, aber sonst! Das Forum ist ja auch noch da! Da kannst du ja Fragen.

cube
2003-08-23, 21:20:47
Original geschrieben von Ganon
3. Jeweils spezielle Firmenanpassungen usw.! Einige Sachen wurden hinzugefügt, bzw. vereinfacht! Aber da geht die Portabilität komplett flöten und du bist immer auf dieses eine Programm angewiesen. Z.B. kannst du nicht einfach ein Borland-Projekt nehmen und mit Visual-C++ weitermachen.

Dann frage ich mich, was nun der Begriff der Programmiersprache "C++" überhaupt bedeutet. Ich dachte mir bisher eine Programmiersprache unterscheidet sich von einer anderen, laienhaft ausgedrückt, durch die Unterschiede der verschieden Befehle die ich eingeben muss und deren Umfang. Eigentlich sollten doch diese Befehle normiert sein und sich nicht bei den verschiedenen Compilern unterscheiden?
Folgt jetzt daraus, dass wenn ich C++ z.B nur mit dem Compiler von MS erlerne und mit dem von Borland nochmal neu C++ erlernen muss?
Oder ist es sehr einfach vom Dev-C++, MinGW auf andere Compiler umzusteigen?

Ich habe mir jetzt mal Dev-C++ und den Compiler runtergeladen,(Danke für den Link, liquid) allerdings weiß ich nicht wo ich nun den Code aus den Tutorials z.B
"
// Dies ist ein Kommentar

#include <iostream.h> // Hier werden zusätzliche Befehle eingebunden

void main() // Das ist das Hauptprogramm
{ // Hier fängt ein Anweisungsblock an
cout << "Hallo Welt!" << endl;
// Hier wird etwas ausgegeben
}; // Hier hört der Anweisungsblock auf"

eingeben muss. Ich kann mir zwar denken, dass ich unter "Datei, Neu"
ein "Projekt" oder die "Quelldatei" auswählen muss, allerdings wenn ich den Code in der Quelldatei eingebe und kompilieren will, spuckt er einen Fehler aus. Das Beispielprogramm "HalloWorld", was bei Dev-C++ dabei ist läuft hingegen. Ist der Code aus dem Tutorial falsch, oder muss ich etwas anderes beachten oder ein komplett anderes Projekt auswählen?
Die Hilfe von Dev-C++ ist leider nicht sehr hilfreich.

liquid
2003-08-23, 21:48:57
Original geschrieben von cube
Dann frage ich mich, was nun der Begriff der Programmiersprache "C++" überhaupt bedeutet. Ich dachte mir bisher eine Programmiersprache unterscheidet sich von einer anderen, laienhaft ausgedrückt, durch die Unterschiede der verschieden Befehle die ich eingeben muss und deren Umfang. Eigentlich sollten doch diese Befehle normiert sein und sich nicht bei den verschiedenen Compilern unterscheiden?
Es gibt etwas was sich ISO C/C++ nennt. Das ist normiert. Dann gibt es aber noch zahlreiche Sachen, die die jeweiligen IDEs bieten um es dem User leichter zu machen. VC++ bietet zb MFC um das GUI zu designen, Borland bietet da ein anderes Interface und unterstützt zB absolut kein MFC. Da ist auch schon das erste Problem. Wenn du jetzt mit VC++ ein Projekt entwicklen solltest und das MFC benutzt lässt sich das auf keinem anderen Compiler ausser dem von MS compilen (vereinfacht gesprochen).
In MinGW ist es so, dass du eigentlich meistens ISO programmierst, weil dir solche Sachen wie MFC und Co. nicht zur Verfügung gestellt werden. Es ist eigentlich dann reines C++ ohne zusätzliche Schmanckerl.
Sicher gibt es GUIs auch für MinGW (nicht direkt für MinGW, aber du kannst sie mit MinGW benutzen). Das wäre zB FLTK oder wxWindows. Vorteil dabei ist, dass du diese beiden auch mit anderen Compilern einsetzen kannst (manchmal mit einiger Fummelei verbunden). Weiterer Vorteil ist, dass du FLTK und wx sowohl unter Windows als auch unter Linux benutzen kannst (und noch unter anderen Plattformen).
Also das beste ist es eigentlich ISO C/C++ zu erlernen inklusive der C-Library und der STL. Damit kommste dann eigentlich bei jedem Compiler über die Runden, da diese Sachen von jedem unterstützt werden. Ist meine Meinung, kann auch sein, dass andere das hier anders sehen.

Original geschrieben von cube
Folgt jetzt daraus, dass wenn ich C++ z.B nur mit dem Compiler von MS erlerne und mit dem von Borland nochmal neu C++ erlernen muss?
Naja nicht ganz, es kommt halt ganz darauf an wie spezifisch man vorher auf den Compiler zugeschnitten programmiert hat. Du kannst auch unter VC++ und Borland ISO programmieren, das wird dann (in 99% der Fälle) auch mit dem MinGW laufen. Meistens jedenfalls ;)

Original geschrieben von cube
Oder ist es sehr einfach vom Dev-C++, MinGW auf andere Compiler umzusteigen?

KA, aber ich kann mir vorstellen, dass man nicht allzuviele Probleme hat. Ich würde mich allerdings nicht gerne von meinem MinGW trennen wollen.

Original geschrieben von cube
Ich habe mir jetzt mal Dev-C++ und den Compiler runtergeladen,(Danke für den Link, liquid) allerdings weiß ich nicht wo ich nun den Code aus den Tutorials z.B
"
// Dies ist ein Kommentar

#include <iostream.h> // Hier werden zusätzliche Befehle eingebunden

void main() // Das ist das Hauptprogramm
{ // Hier fängt ein Anweisungsblock an
cout << "Hallo Welt!" << endl;
// Hier wird etwas ausgegeben
}; // Hier hört der Anweisungsblock auf"

eingeben muss. Ich kann mir zwar denken, dass ich unter "Datei, Neu"
ein "Projekt" oder die "Quelldatei" auswählen muss, allerdings wenn ich den Code in der Quelldatei eingebe und kompilieren will, spuckt er einen Fehler aus.
Ich vermute mal irgendeine Sache mit den Libraries. Falls es sowas sein sollte, dann sind im Projekt selbst einige Einstellungen net getroffen worden. Ich glaube ich hab bei meinem Profil die ICQ angegeben, kannst mich ja mal adden, dann guck ich mal ob ich die Einstellungen finden kann. Meistens sind es immer so kleine Probleme, die alles zum Scheitern bringen.

Original geschrieben von cube
Das Beispielprogramm "HalloWorld", was bei Dev-C++ dabei ist läuft hingegen. Ist der Code aus dem Tutorial falsch, oder muss ich etwas anderes beachten oder ein komplett anderes Projekt auswählen?
Die Hilfe von Dev-C++ ist leider nicht sehr hilfreich.
Jo, die Hilfe ist net so das Wahre. Aber du kannst es ja auch so machen. Nimm einfach die Beispiel-Vorlage und lösch alles in der Quelldatei. Füg dann deinen Code ein und compile. Das dürfte eigentlich laufen, die Projekt-Einstellungen sollten dann beibehalten werden.

cya
liquid

Xmas
2003-08-23, 22:09:30
Original geschrieben von cube
// Dies ist ein Kommentar

#include <iostream.h> // Hier werden zusätzliche Befehle eingebunden

void main() // Das ist das Hauptprogramm
{ // Hier fängt ein Anweisungsblock an
cout << "Hallo Welt!" << endl;
// Hier wird etwas ausgegeben
}; // Hier hört der Anweisungsblock auf"
Vergiss dieses Tutorial bitte schnell und nimm ein etwas aktuelleres. Da sind ja gleich drei Fehler drin.

Ganon
2003-08-23, 22:46:07
Hi,

ja wie schon gesagt!

Ich sag mal so:

Borland:


#include <iostream.h>

void main(void)
{
AnsiString Hallo="Hallo Welt";
cout << Hallo << endl;
}


Altes C++:


#include <iostream.h>

int main()
{
char Hallo[] = {"Hallo Welt"};
cout << Hallo << endl;
}



Aktuelles C++:


#include <iostream>
#include <string>

int main()
{
std::string Hallo="Hallo Welt";
std::cout << Hallo << endl;
}


Sorry, wenn ich was vergessen habe! Es ist schon spät! Soll auch nur mal einen kleinen Unterschied klar machen.

Borland hat z.B. die iostream.h stark erweitert so das man nicht so etwas machen muss wie beim aktuellen Standard C++ und hat trotzdem die ganzen Funktionen. Dann noch Sachen wie die Conio.h, die es nur für Windows gibt.

Borland ist aber wenigstens so nett und schreibt in die Hilfe rein wie Portabel ein Befehl ist. Steht da nur "Win32" dann ist das schon kein ANSI C++! Also schon eine Abhängigkeit.

Also C++ nicht gleich C++!

liquid
2003-08-23, 23:31:59
Original geschrieben von cube
#include <iostream.h> // Hier werden zusätzliche Befehle eingebunden

void main() // Das ist das Hauptprogramm
{ // Hier fängt ein Anweisungsblock an
cout << "Hallo Welt!" << endl;
// Hier wird etwas ausgegeben
}; // Hier hört der Anweisungsblock auf"


Xmas war ja schon so freundlich zu sagen, dass dieser Code sehr fehlerbehaftet ist. Ich sag dann auch mal, wo sich die Fehler befinden.

Erstens beim Include. Es sollte
#include <iostream>
heissen, also ohne die Extension.

Dann bei der main-Funktion. Es sollte
int main()
heissen, oder auch
int main(int argc, char** argv)

void main ist definitiv falsch, auch wenn es sich auf vielen Compilern entsprechend übersetzen lässt. main gibt immer einen Integer zurück, der einen Errorcode darstellt und halt Information darüber weitergibt, wie der Programmablauf stattgefunden hat (erfolgreich, nicht erfolgreich, etc.).
Aus DOS-Zeiten ist wohl beim "Batch"en noch der ERRORLEVEL bekannt.

Dann zum cout. cout steht für console out, also Ausgabe auf der Konsole (manchmal auch DOS-Fenster genannt, obwohl das falsch ist, Unix hat ja schließlich auch ne Konsole).
cout ist allerdings Teil der Standardbibliothek und ist deshalb im Namensbereich (namespace) std definiert. Namesbereiche sind praktisch um eine Menge von "gleichartigen" Definitionen zu kapseln.
Sagen wir mal zu hast dir eine Anzahl von mathematischen Funktion selbst geschrieben. Dann wäre es logisch diese in einen namespace zu packen, zB my_own_math_functions oder halt etwas in der Art.
Selbiges gilt auch für endl (steht für end line), das gehört auch zum std namespace.

Letztendlich fehlt noch das return 0, welches den fehlerlosen Betrieb des Programms ausdrückt (vielleicht für das Programm welches deines aufruft).

Richtiger Code müsste dann in etwa so aussehen.
#include <iostream>

int main(int argc, char** argv)
{
std::cout << "Hallo Welt!" << std::endl;

return 0;
};

cya
liquid

cube
2003-08-24, 01:19:23
Danke für die Antworten.

liquid, leider konnte ich deinen Ausführungen am Ende nicht ganz folgen, da ich ja noch keine Kenntnisse besitze.
Aber noch eine Frage, ich muss doch den Code "zu Anfang" unter "neu,Quelldatei" eingeben, oder?
Der Code von dir und der "neue" von Gonan funktionieren auch nur die Dos-Box mit dem "Hallo world" bleibt zu kurz auf, kann ich das irgendwie beheben?

Ich werde mich dann heute mal durch den Sticky wühlen und mich nach einem brauchbaren Tutorial in Deutsch umschauen oder hat jemand einen Tipp parat? Irgendwo müsst ihr euch die Kenntnisse ja auch angeeignet haben. Oder gibt es ein einfaches, gutes englisches?

Es ist nur etwas seltsam, dass der Code, den ich gepostet habe so ähnlich auch in diesem relativ aktuellen Tutorial "Volkards" steht:
http://www.c-plusplus.de/c___1.htm
Oder ist dieses Tutorial auch schon veraltet?

Xmas
2003-08-24, 04:37:41
Ganon, die Angaben zur Portabilität lassen sich zum Glück in den meisten Dokumentationen finden. Aber ehrlich, Gedanken machen sich da eh die wenigsten.

liquid,
return 0 ist übrigens implizit und nicht wirklich erforderlich. Was mich an dem Code aber noch stört ist das Semikolon hinter dem Funktionsblock, was zwar nicht falsch, aber IMO einfach schlechter Stil ist.

liquid
2003-08-24, 11:21:36
Original geschrieben von Xmas liquid,
return 0 ist übrigens implizit und nicht wirklich erforderlich.
Hmm, wusste ich nicht. Naja, ich schreib trotzdem immer in meine main-Fnktion. Ist aber dennoch neu für mich, dass es nicht sein muss.

Original geschrieben von Xmas Was mich an dem Code aber noch stört ist das Semikolon hinter dem Funktionsblock, was zwar nicht falsch, aber IMO einfach schlechter Stil ist.
sry, mein Fehler. Das ist mir dann doch durch die Lappen gegangen, als ich den Code korrigiert habe. Sowas mache ich nämlich auch nicht. Also, kein Semikolon hinter die Implementierung einer Funktion/Klassenmethode (hinter die Deklaration muss allerdings eins).

cya
liquid

liquid
2003-08-24, 11:34:59
Original geschrieben von cube liquid, leider konnte ich deinen Ausführungen am Ende nicht ganz folgen, da ich ja noch keine Kenntnisse besitze.
Aber noch eine Frage, ich muss doch den Code "zu Anfang" unter "neu,Quelldatei" eingeben, oder?
Also als erstes MUSST du ein Projekt anlegen. Das Projekt ist sozusagen eine Ansammlung von Quelldateien (H und CPPs, also die Header und die eigentlich Implementierung).
Wenn du das Projekt angelegt hast, dann legt dir Dev (glaube es, bin mir nicht ganz sicher - meine IDE ist seit einiger Zeit Eclipse CDT) eine Sourcefile Datei an, in der du deinen Code packen kannst.
Ich würd das so machen. Du benutzt einfach eins der Beispiele als Vorlage. Du hast das ja schon gemacht. Also Beispiel öffnen und erstmal in einem Verzeichnis abspeichern. Danach Code in der Quelldatei löschen (steht ja schon welcher drin). Jetzt sollten eigentlich die von mir schon vorher genannten Projekteinstellungen passen und du kannst deinen "Lerncode" in die Quelldatei schreiben.
Compilen, Ausführen - und wenns klappt glücklich sein.

Original geschrieben von cube Der Code von dir und der "neue" von Gonan funktionieren auch nur die Dos-Box mit dem "Hallo world" bleibt zu kurz auf, kann ich das irgendwie beheben?
Hmm, das ist eigentlich kein wirkliches Problem. Zwei Möglichkeiten:
1. die DOS-Box öffnen und dann das compilte Programm selbst starten
2. etwas einfügen (im Code) was den Programmablauf am Ende des Programms anhält (das überlasse ich dir mal selber, wir wollen ja nict alles verraten ;))

Original geschrieben von cube
Ich werde mich dann heute mal durch den Sticky wühlen und mich nach einem brauchbaren Tutorial in Deutsch umschauen oder hat jemand einen Tipp parat? Irgendwo müsst ihr euch die Kenntnisse ja auch angeeignet haben. Oder gibt es ein einfaches, gutes englisches?
Ein Buch wäre nicht die verkehrteste Investition.

Original geschrieben von cube
Es ist nur etwas seltsam, dass der Code, den ich gepostet habe so ähnlich auch in diesem relativ aktuellen Tutorial "Volkards" steht:
http://www.c-plusplus.de/c___1.htm
Oder ist dieses Tutorial auch schon veraltet?
Naja, besonders aktuell ist das IMHO nicht.

cube
2003-08-24, 14:23:37
Dann werde ich mich mal nach einem Buch umschauen.