PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ erstes Programm


Geldmann3
2011-10-26, 00:58:59
Hallo, im Zuge meiner Ausbildung zum IT Systemelektroniker habe ich nun auf der Berufsschule mein erstes kleines Programm in C++ geschrieben.
Wir verwenden Visual Studio 2005, der Lehrer meinte aber, wenn möglich sollen wir privat die neueste Version verwenden. Gesagt, getan.

Nun habe ich mit der 2010 er Version eine CLR Konsolenanwendung ohne Kompilierten Header erstellt. (So wurde es uns erst mal beigebracht)

Doch zu meiner Überraschung sieht der Standard-Queltext schon mal ganz anders aus.
// CLR.cpp: Hauptprojektdatei.

#include "stdafx.h"

using namespace System;

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


Habe ich das Projekt falsch erstellt? "stdafx.h" wurde bei uns nicht included. Stattdessen haben wir streamIO importiert. Um Hallo Welt auszugeben. Das haben wir so
#include <iostream>

int main()
{
cout cc "Hallo Welt";
cin.get();;
}

gemacht. Beim kompilierien in Visual Studio 2010 kommt es allerdings zu einer Fehlermeldung.

1>------ Erstellen gestartet: Projekt: CLR, Konfiguration: Debug Win32 ------
1> stdafx.cpp
1> AssemblyInfo.cpp
1> CLR.cpp
1>CLR.cpp(3): warning C4627: "#include <iostream>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
1> "StdAfx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
1>CLR.cpp(10): fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?
1> Code wird generiert...
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Warum soll ich jetzt "StdAfx.h" einbinden? Den vor-kompilierten Header habe ich beim Erstellen des Projektes wie in der Schule gelernt erst mal abgewählt. In 2005 gab es damit keine Probleme?
Unter 2005 musste "StdAfx.h" soweit ich mich erinnere nicht importiert werden.

Geht das in der 2010er Version so nicht mehr?
Wenn nicht, ist es dann nicht vollkommen kontraproduktiv uns mit der 2005er Version heranzuführen?

:biggrin: Wie ich so-was hasse, das inkompetente Dreckskaff soll mal neue Software installieren. Habe ich erwähnt, dass wir dort auch Windows XP verwenden? Wie ich es hasse mit solch einem alten Müll zu arbeiten. Und dann auch noch erzählen, wir sollen zuhause die neueste Version verwenden. Ich hab mir gleich gedacht, dass der Code dann nicht mehr so funzt.

del_4901
2011-10-26, 01:13:38
Du hast ein C++/CLI Projekt erstellt und kein Natives C++. C++/CLI ist fuer die Anbindung an .net gedacht. Und bitte nimm die englische Version, sonst wird dir in Zukunft die Fehlersuche im Netz schwer fallen. Englischer Quelltext ist eh so ein ungeschriebenes Gesetz unter Informatikern. Du willst doch sicher nicht, dass man dich auf eine Stufe mit gewissen inkompetenten Franzosen (deren Namen ich jetzt nicht nennen kann) stellen moechte?

Geldmann3
2011-10-26, 01:15:26
Also müsste ich Win32 auswählen?

del_4901
2011-10-26, 01:18:28
Also müsste ich Win32 auswählen?
Jop Win32 Console Application, und dann bei Next den "Precompiled Header" beim erstellen raushaken.

Geldmann3
2011-10-26, 01:48:00
Nun entsteht eine andere Fehlermeldung
1>------ Erstellen gestartet: Projekt: HalloWelt, Konfiguration: Debug Win32 ------
1> HalloWelt.cpp
1>c:\users\geldmann3\documents\visual studio 2010\projects\hallowelt\hallowelt\hallowelt.cpp(5): error C2065: 'cout': nichtdeklarierter Bezeichner
1>c:\users\geldmann3\documents\visual studio 2010\projects\hallowelt\hallowelt\hallowelt.cpp(6): error C2065: 'cin': nichtdeklarierter Bezeichner
1>c:\users\geldmann3\documents\visual studio 2010\projects\hallowelt\hallowelt\hallowelt.cpp(6): error C2228: Links von ".get" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Edit: Aha Ok funzt
#include <iostream>
using namespace std ;
int main()
{
cout << "Hallo Welt";
cin.get();
}

Danke für die Starthilfe!

mittelding
2011-10-26, 09:54:16
Kenne mich mit C/++ null aus, aber ist das Using jetzt nicht ein Mischmasch mit .NET? Oder dient das nur der Strukturierung?

Mr.Freemind
2011-10-26, 10:39:01
Kenne mich mit C/++ null aus, aber ist das Using jetzt nicht ein Mischmasch mit .NET? Oder dient das nur der Strukturierung?

Sind halt Namensräume in C++. Wenn es dich interessiert kannste dich mal hier (http://www.willemer.de/informatik/cpp/cppnames.htm)einlesen.

mittelding
2011-10-26, 10:43:38
Okay danke, dass das Namespaces sind habe ich mir schon gedacht, allerdings wusste ich nicht, dass C++ hier auch das "using"-Keyword verwendet und somit etwas nach .NET aussieht.

mekakic
2011-10-26, 10:50:31
Und bitte nimm die englische Version, sonst wird dir in Zukunft die Fehlersuche im Netz schwer fallen. Kann man eine deutsche Visual Studio Version denn auf englische Ausgaben umschalten? Hab da bisher nichts gefunden.

ShadowXX
2011-10-26, 10:54:20
Okay danke, dass das Namespaces sind habe ich mir schon gedacht, allerdings wusste ich nicht, dass C++ hier auch das "using"-Keyword verwendet und somit etwas nach .NET aussieht.
using gabs bei c++ schon als es .net noch gar nicht gab....wenn hat da .net "abgeguckt".

Aber mal nebenbei:
Wieso schreibt ein IT Systemelektroniker in seiner Ausbildung C++ Programme? Zumindest die IT Systemelektroniker in unserer Firma machen das nicht (warum auch, mit C++ haben IT Systemelektroniker nichts zu tun).


Kann man eine deutsche Visual Studio Version denn auf englische Ausgaben umschalten? Hab da bisher nichts gefunden.
Nein, dafür musst du schon die englische Version des Compilers nehmen.

hadez16
2011-10-26, 11:01:52
Aber mal nebenbei:
Wieso schreibt ein IT Systemelektroniker in seiner Ausbildung C++ Programme? Zumindest die IT Systemelektroniker in unserer Firma machen das nicht (warum auch, mit C++ haben IT Systemelektroniker nichts zu tun).


weil in manchen (oder allen?) Berufsschulen die Fachinformatiker (Systemintegration und Anwendungsentwicklung) mit den IT-Systemelektronikern in einer Klasse stecken.

d.h. die ersten 2 Lehrjahre exakt die gleichen Lehrinhalte.

Erst im 3. Lehrjahr kenne ich eine Aufsplittung dann sind die FI-SI immernoch mit dem IT-SE zusammen, nur die FI-AE bekommen eine extrabehandlung.

Also: als IT-SE lernst du auch schön C++

Geldmann3
2011-10-28, 22:08:05
Bei uns sind wir nicht in einer Klasse. (Frankfurt am Main Werner von Siemens Schule) Dennoch werden wir in nahezu allen Bereichen unterrichtet. Wahrscheinlich wünschen sich das unsere Ausbildungsbetriebe. Ich finde es toll. Ich lerne immer gerne etwas dazu und habe später eventuell vor auch etwas in diesem Bereich zu machen. IT und Physik interessiert mich generell :wink: