Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.12.2007, 21:48

Anfängerprobleme: #inklude...

Hallo Leute.
Ich habe mich entschlossen C++ zu lernen, um später Spiele zu programmieren ( habe mich deswegen auch gleich hier im Forum angemeldet ).
Ich kann bereits PHP/MySQL ( auch objektorientiert ).
Habe allerdings beim Anfang schon Probleme.
Ich habe mir Visual C++ 2008 Express Edition runtergeladen. Ich fange natürlich mit einer Konsolenanwendung an, dem "Hello World" Programm. Das erscheint auch automatisch wenn ich ein neues Projekt erstelle. Ich lösche dann den Code der mir vorliegt, da ich es ja lernen will.

Also das was von Anfang an da steht ist folgendes ( das was ich dann lösche ):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
// dasdas.cpp : main project file.


#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    return 0;
}


In dem Tutorial, mit welchem ich arbeiten möchte steht dieser Code:

C-/C++-Quelltext

1
2
3
4
5
6
#include <iostream.h>
void main()
{
   // Dies ist das Hello-World-Programm

   cout<<"Hello, world!"<<endl;
};


Das funktioniert dann leider nicht wenn ich den Debugger durchlaufen lasse:...Did you forget to add '#include "stdafx.h"' to your source?...
Auch wenn ich das hinzufüge funktioniert es noch nicht ganz, scheinbar kennt er "cout" etc. nicht.

Kann mir mal jemand sagen was ich falsch mache, ist das Tutorial überhaupt für die Version gedacht, weil der vorgegebene Programmcode zu "Hello World" sieht auch ganz schön anders aus.

Kennt ihr gute Online-Tutorials zu C++ bzw. dass was ich da mit dem Visual Studio mache, ist das Visual C++.net oder so? Kann mich da mal jemand aufklären und mir den Start etwas leichter machen. Denn Schleifen und Variablen, Arrays, Dateitypen und alles mögliche kenne ich ja schon von PHP, da muss ich mir nur mit der Syntax vertraut machen.

Ich hoffe mein Problem wurde ausführlich genug beschrieben.

Danke im Voraus!

Jan

terrible1

Frischling

Beiträge: 58

Wohnort: Freyung

Beruf: Schülern

  • Private Nachricht senden

2

09.12.2007, 21:58

Du hast vergessen, das

C-/C++-Quelltext

1
using namespace std
stehen zu lassen:

C-/C++-Quelltext

1
2
3
4
5
6
7
#include <iostream.h> 
using namespace std;    //ich weiß nicht genau ob der ";" dazu gehört...

void main() 
{ 
   // Dies ist das Hello-World-Programm 

   cout<<"Hello, world!"<<endl; 
};
http://www.world-of-smilies.com/smiliegen/dyn_Nobody-l-is-l-perfect-r-0D-r-0A-r-28I-r-5C-r-27m-l-Nobody-r-29_Arial.ttf_center_26_8_x_b_a_c.gif

3

09.12.2007, 22:01

Also, du hast dort ein Projekt für Managed C++ erstellt. Das ist etw. anders als normales C++ ^^ Pass den Projekttyp an und es sollte gehen.

Zitat

Das funktioniert dann leider nicht wenn ich den Debugger durchlaufen lasse:...Did you forget to add '#include "stdafx.h"' to your source?...
Hmm du kannst in den Compiler-Settings einstellen, dass er ohne "Precompiled Header-Files"(stdafx.h) arbeiten soll.

C-/C++-Quelltext

1
Kennt ihr gute Online-Tutorials zu C++ bzw. dass was ich da mit dem Visual Studio mache, ist das Visual C++.net oder so? Kann mich da mal jemand aufklären und mir den Start etwas leichter machen. Denn Schleifen und Variablen, Arrays, Dateitypen und alles mögliche kenne ich ja schon von PHP, da muss ich mir nur mit der Syntax vertraut machen.
Visual C++ 2008 Express Edition kann auch ISO C++, wenn du eine C++ Anwendung und keine "Managed C++" Anwendung erstellt :P

C-/C++-Quelltext

1
2
3
4
5
6
#include <iostream>

int main()
{
    std::cout << "Hallo Welt" << std::endl;
}
so sieht das Programm korrekt aus. Die main-Funktion kann laut C++-Standard entweder den Rumpf:

C-/C++-Quelltext

1
int main()
oder den Rumpf

C-/C++-Quelltext

1
int main(int argc, char**)
haben. void main gilt schon lange nicht mehr (in alten C++-Tutorials steht das noch so ... ).
Normal muss eine Funktion, die als Rückgabewert int hat, einen Wert zurück geben (0 bei main, wenn kein Fehler aufgetreten ist). Laut Standard ist es aber ebenfalls ok, in der main-Funktion (und NUR da!) das return 0 am Ende der Funktion wegzulassen.

Achja und alle Funktionen des Standards liegen im Namensraum std ... ist auch schon etwas länger so ^^

Hab es jetzt etwas vereinfacht erklärt, da ich deinem Post nach davon ausgehe, dass du noch so gut wie gar keine Erfahrungen in C++ hast!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

4

09.12.2007, 22:02

Geht leider immernoch nicht, hier mal was der Debugger sagt:

1>------ Build started: Project: dasdas, Configuration: Debug Win32 ------
1>Compiling...
1>dasdas.cpp
1>.\dasdas.cpp(1) : warning C4627: '#include <iostream.h>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>.\dasdas.cpp(8) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
1>Build log was saved at "..."
1>dasdas - 1 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Selbst wenn es das gewesen wäre, dann könnte ich mir eigentlich gleich ein neues Tutorial suchen, weil ich sowas als Anfänger natürlich nicht wissen kann. Habt ihr irgendwelche guten Onlinetutorials, um mir die "Basics" anzueignen? Vielleicht nicht nur programmiertechnische Basics, sondern auch was der Umgang mit dem Visual Studio angeht und so und wie ist das jetzt eigentlich mit C++ und Visual C++ bzw. C++.net...?

Jan


EDIT: Ah während ich gepostet hab noch 2 weitere Antworten dazu gekommen. Ich denke damit lässt sich was anfangen. Danke.

XP^

Treue Seele

  • Private Nachricht senden

5

09.12.2007, 23:39

C-/C++-Quelltext

1
#include "stdafx.h"
dazuhängen und compilieren :idea:

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

6

09.12.2007, 23:52

Zitat von »"XP^"«

C-/C++-Quelltext

1
#include "stdafx.h"
dazuhängen und compilieren :idea:


Das macht keinen Sinn. Deviloper hat das Problem beschrieben und dementsprechend kann es auch gelöst werden

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

09.12.2007, 23:53

1) beim erstellen des projektes precompiled header ausschalten
2) iostream.h ist falsch. es muss nur #include <iostream> heißen. ich weis, in deinem buch steht das so. es ist aber falsch ;)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

8

10.12.2007, 00:08

Zitat von »"Teremy"«


Selbst wenn es das gewesen wäre, dann könnte ich mir eigentlich gleich ein neues Tutorial suchen, weil ich sowas als Anfänger natürlich nicht wissen kann. Habt ihr irgendwelche guten Onlinetutorials, um mir die "Basics" anzueignen? Vielleicht nicht nur programmiertechnische Basics, sondern auch was der Umgang mit dem Visual Studio angeht und so und wie ist das jetzt eigentlich mit C++ und Visual C++ bzw. C++.net...?

Schau dir mal http://www.cpp-tutor.de/cpp/index.html an, da geht es zwar nicht um Visual Studio, aber einiges an C++ Grundlagen wird da recht gut behandelt.

9

10.12.2007, 17:08

Ok läuft prima jetzt. Nur nach dem debuggen öffnet der halt die Console, aber schließt sie sofort wieder. Da kann ich ja garnicht meinen Erfolg bewundern.

Übrigens ich mache es jetzt wohl erstmal mit "void main()", weil es so in dem Tutorial steht, dass ich benutze. Kann ich später immernoch ändern, brauche nur erstmal die Basics, dann sollte das später kein Problem sein.

EDIT: Hatte doch noch etwas Probleme mit dem Tutorial. Ich lerne nun erstmal mit diesem Tutorial: http://www.online-tutorials.net/c-c++-c/c++-tutorial-teil-1/tutorials-t-1-58.html#kapitel-1-grundlagen

EDIT2: Dass sich die Console sofort wieder sclhießt hab ich auch gelöst.

Das scheint mir auch aktueller. :-)

Jan

10

10.12.2007, 17:30

Hmm also void main sollte der VC++2008 nicht mehr akzeptieren .. kannst du nicht nehmen ^^
Damit die Konsole nicht schließt ... hier nen Code .. ok du verstehst den wahrscheinlich noch nicht, aber das kommt mit der Zeit:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <limits>

std::istream& clear_stream(std::istream& in)
{ return in.clear(), in.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }

int main()
{
    // ... dein Programm ... 

    clear_stream(std::cin).get();
}
das wichtige ist dabei dei clear_stream-Funktion. Ich kann es dir von mir aus mal erklären, was da passiert. Aber am besten erlernst du dazu erstmal die Grundlagen von Streams usw.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige