[C++] Anfängerprobleme

S-A-M

Lt. Junior Grade
Dabei seit
Dez. 2005
Beiträge
395
Hi Leute!

Hab großes Problem und bräucht eure Hilfe!!!

Also, folgendes:

Ich hab mir ein Buch zu C++ gekauft, mit der C++ Version 6.0.
Nun, nimmt mir das Programm die Syntax die im Buch steht nicht an!!
z.B.: " cout<<"Text"<<endl; ", nimmt mir das Programm nicht an und schreibt mir Syntaxfehler an.

Könnt ihr mir helfen *fleeeeehh*

mfg sam
 

mh1001

Lt. Commander
Dabei seit
Nov. 2003
Beiträge
2.039
AW: C++ Probleme

Hallo,

wie schaut denn dein kompletter Code aus?
Hast du auch die entsprechende Header-Dateien auch eingebunden (iostream) ?
Desweiteren musst du den Namensbereich noch vor dem "cout" hinzufügen, sofern du nicht ein "using namespace std;" festgelegt hast.

MfG mh1001
 

oDeM

Lt. Junior Grade
Dabei seit
Sep. 2002
Beiträge
374
AW: C++ Probleme

Hast du den gesamten Befehl in Doublequotes geschrieben? also wirklich " cout<<"Text"<<endl; ", denn das ist falsch, lass die Quotes mal weg, so dass da nur noch cout<<"Text"<<endl; steht. Ausserdem wiess ich grad nicht wie es sich mit Leerzeichen verhält....also evtl. auch mal Leerzeichen verwenden und nicht alles aneinndergeklatscht schreiben.
 

TK-Shockwave

Lt. Commander
Dabei seit
März 2003
Beiträge
1.259
AW: C++ Probleme

Du meinst dein Buch ist für MS Visual C++ 6.0 die C++ Version welches für ANSI/ISO C++
ist?

PHP:
#include <iostream>

int main() {

using namespace std;

cout << "Hallo Welt" << endl;

return 0;

}

od.

#include <iostream>

int main() {

using namespace std::endl;
using namespace std::cout;

cout << "Hallo Welt" << endl;

return 0;

}
 

ghorst

Lieutenant
Dabei seit
Mai 2005
Beiträge
643
AW: C++ Probleme

so müsste es funtkionieren.

Code:
#include <iostream>

using namespace std;

int main(int argc, char**argv) {

cout << "Hallo Welt" << endl;

return 0;

}
probier das mal.
using namespace gehört nicht in die main sondern davor.
int main() gibt es nicht, korrekt heißt es int main(int argc, char** argv) oder int main(int argc, char* argv[]). was aber beides das gleich ist.
 

ghorst

Lieutenant
Dabei seit
Mai 2005
Beiträge
643
AW: C++ Probleme

korrektes c++ ist #include<iostream> und nicht #include<iostream.h>.
 

TK-Shockwave

Lt. Commander
Dabei seit
März 2003
Beiträge
1.259
AW: C++ Probleme

ANSI/ISO C++ Standard schreibt vor

#include <header> no filesuffix also
#include <iostream>

@ghorst
das argv...bei int main(){} wird nicht benötigt da Main an sich kein Argumente übermittel bekommt. Das was du da schreibst ghorst ist von MS Visual C++ net aber ANSI/ISO C++ ;-) können wir eine Wette abschließen das es definitv ohne
diese Parameter/Argumente (int argc, char**argv) geht!!!???? Compiliere ma mein Quellcode der funzt definitv auch ohne was du sagst!

Hier ein Link zum ANSI/ISO C++ Standard der 1996 eingeführt wurde

http://www.physik.uni-osnabrueck.de/kbetzler/win32/ansi/cpp.htm
 
Zuletzt bearbeitet:

7H3 N4C3R

Lt. Commander
Dabei seit
Feb. 2002
Beiträge
1.816
AW: C++ Probleme

@TKShockwave

int main() ist genauso Standard wie int main(int argn, char* argv[])

Und 1996 gab es noch keinen C++ Standard. Der wurde erst 1998 verabschiedet. 1996 war das alles eher noch etwas ungar. So ein paar Sachen haben sich bis zum finalen Standard noch geändert, z.B. hinsichtlich der Strings.
 

S-A-M

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Dez. 2005
Beiträge
395
AW: C++ Probleme

wenn ich eine leere arbeitsmappe mach: wie funktioniert das mit den header-dateien???
denn ich buch steht nichts über DAS erste programm!!

wenn ich eine fertige arbeitsmappe mach: dann hab ich kein iostream beim input sondern stdafx, dazu noch eine stdafx.cpp und eben die dazugehörige header-datei!!

hilfe :mad:

mfg sam
 

TK-Shockwave

Lt. Commander
Dabei seit
März 2003
Beiträge
1.259
AW: C++ Probleme

@7H3 N4C3R:
C++ gab es schon vor 1996 nur zur Info.
Wiki ist your friend,google too.
Oder irren die sich auch in meinen Fachbüchern?argc und argv sind kein standard
der Funktionsrumpf wie ANSI C++ vorschreibt ist

int main(){
}

@S-A-M:

Die Basics sollten im Buch stehn sonst ist es für dich nicht geeignet..welches Buch hast du den?
 

Arnd

Lieutenant
Dabei seit
Jan. 2005
Beiträge
926
AW: C++ Probleme

Hallo S-A-M,

wenn Dich die stdafx Sachen stören, wähle einfach einen anderen Projekttyp aus.
Eine reine Consolen Anwendung ohne Inhalt. Da kannst Du dann machen was Du willst.

Ansonsten kannst Du auch einfach in die stdafx.h das "#include <iostream>" reinschreiben.

@TK-Shockwave,

auch ohne jetzt in den Standards nachzulesen. Ein Main ohne argc und argv macht wenig Sinn. Wie kommt das Programm sonst an die übergebenen Parameter ran? Vor allem unter Unix war das zu den Zeiten schon wesentlich. In Praxi gehen beide Varianten. Zumindest hat mir das bisher immer jeder Compiler geschluckt.

MfG

Arnd
 
Zuletzt bearbeitet:

TK-Shockwave

Lt. Commander
Dabei seit
März 2003
Beiträge
1.259
AW: C++ Probleme

Bisher konnte ich meinen Programmen auch ohne argc und argv Parameter/Argumente von Shell->Programm übergeben
 

7H3 N4C3R

Lt. Commander
Dabei seit
Feb. 2002
Beiträge
1.816
AW: C++ Probleme

Zitat von TK-Shockwave:
@7H3 N4C3R:
C++ gab es schon vor 1996 nur zur Info.
Wiki ist your friend,google too.
Oder irren die sich auch in meinen Fachbüchern?argc und argv sind kein standard
der Funktionsrumpf wie ANSI C++ vorschreibt ist

int main(){
}
Dass es C++ vor 1996 gab weiß ich und dem habe ich auch nicht widersprochen. Allerdings wurde es erst 1998 standardisiert. Wenn du mal in die PDFs schaust, die du gepostet hast, wirst du auf allen Seiten oben das Wörtchen "Draft" finden. (-> Entwurf)

Wenn du schon Links zu einem Draft vom Standard postest, solltest du auch mal dort reinschauen - z.B. auf die Definition der main-Funktion. Schau mal in 3.6.1, Clause 2:

Code:
All implementations shall allow both of the following definitions of main:
int main() { /* ... */ }
and
int main(int argc, char* argv[]) { /* ... */ }


Btw, in vielen sogenannten Fachbüchern steht der größte Schmarrn. Man muss schon vorsichtig sein, wenn man gute finden will. Und wenn man wirklich alles im Detail wissen will, bleibt einem der Blick in den Standard eher selten erspart.
 
Zuletzt bearbeitet:

S-A-M

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Dez. 2005
Beiträge
395
AW: C++ Probleme

Wenn ich eine leere Arbeitsmappe öffne fehlen mir die Header Dateien, und die .cpp Version der Header Dateien!! Was mach ich da?

stdafx austauschen funktionert, nur hat er dann Probleme mit der cl.exe Datei!
So sieht das aus:

--------------------Konfiguration: Versuch - Win32 Debug--------------------
Kompilierung läuft...
Versuch.cpp
c:\programme\microsoft visual studio\myprojects\versuch\versuch.cpp(14) : fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei
Fehler beim Ausführen von cl.exe.

Versuch.obj - 1 Fehler, 0 Warnung(en)


Mein Buch ist auf dieser Site:
http://www.amazon.de/exec/obidos/ASIN/3826615344/qid=1138634106/sr=1-1/ref=sr_1_18_1/302-5473848-2294422

In diesem Buch stehen alle Befehle mit Beispiel-Programmen, Erklärungen etc.
NUR nicht dass ich, um ein Programm zum laufen zu bringen, eine stdafx Datei brauch oder die Header-Dateien selber schreiben muss!!

Danke im Voraus
mfg S-A-M

PS: ich kann euch auch die Fehlermeldungen schreiben, die kommen wenn ich das mache was im Buch steht ^^
 

WingX

Commander
Dabei seit
Juli 2001
Beiträge
2.303
AW: C++ Probleme

Mit welcher Programmierumgebung arbeitest du denn? MS Visual Studio hat die Angewohnheit, neue Projekte mit vorkompilierten Headern zu beginnen, ebendiese stdafx.cpp und h. Entweder du lässt die drin, oder stellst in den Projekteigenschaften die vorkompilerten Header aus.
 

S-A-M

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Dez. 2005
Beiträge
395
AW: C++ Probleme

Ja ich hab MS Visual C++ 6.0!

wenn ich ein vorgefertigtes "Hallo Welt!" Projekt öffne, und sie kompilieren lasse,
hat er das Problem mit "cl.exe"; die existiert nicht oder so!

mfg sam
 

Boron

Commander
Dabei seit
Sep. 2001
Beiträge
2.784
AW: C++ Probleme

cl.exe ist der Compiler. Der übersetzt deinen Quellcode in Maschinencode.


Erstelle doch einfach mal ein vollkommen leeres Projekt.
Dann fügst du eine neue cpp-Date ein, die du meinetwegen hallo.cpp nennst.
Da schriebst du das kleine "Hallo Welt" Programm von ghorst rein und lässt es übersetzen.
Dann klappt das.

Das mit den vorkompilierten Headern und der stdafx.h vergisst du besser gaaaanz schnell.
Das ist nur dann interessant, wenn du größere Projekte übersetzen lässt. Dann kannst du nämlich ein bisschen Zeit sparen.
 

7H3 N4C3R

Lt. Commander
Dabei seit
Feb. 2002
Beiträge
1.816
AW: C++ Probleme

Mach mal einen Rechtsklick auf das Projekt und wähl dort "Optionen" oder "Eigenschaften" oder so. Dann Wechsel auf die Seite C/C++. Dort solltest Du irgendwo "Vorkompilierte Header" finden können. Wenn du dahin wechselst, sollte es eine Möglichkeit geben, wo du einstellen kannst, dass vorkompilierte Header nicht verwendet werden.

Das ist jetzt aus meinen grauen Erinnerungen an MS VC++ 6. Es kann gut sein, dass die Punkte noch ein wenig anders heißen. Such mal ein bisschen bis du etwas von vorkompilierten Headern findest.
Danach sollte es gehen.

Das Buch ist übrigens nicht schlecht. :)

@Boron: Vorkompilierte Header sind afaik auch bei vollkommen leeren Projekten aktiviert :(

Edit2 @s-a-m: Du solltest mal in Betracht ziehen, auf das aktuelle Visual Studio 2005 zu wechseln. Das gibt es kostenlos zum Download und hält sich wirklich um Welten besser an den C++ Standard als es die 6.0er Version noch tat.
 
Zuletzt bearbeitet:

S-A-M

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Dez. 2005
Beiträge
395
AW: C++ Probleme

Das ist das Fenster, vielleicht kannst du mir sagen was nun? ^^

Gibts nicht die Möglichkeit in einen Chat oder TS zu gehen, das würde die Sache um einiges beschleunigen!!

mfg sam
 

Anhänge

Top