Befehl nicht erkannt!
-
Cl0v3r schrieb:
Hi,
du kannst natürlich auch schreiben:#include <iostream.h>
Und das
using namespace std;
weglassen aber ich hab hier mal gelesen das die iostream.h wohl veraltet ist und man die nicht mehr nehmen sollte. Ich denke aber mal das wenn man erst anfängt das schon okay ist die Alte zu benutzten schließlich will man ja nich als Anfänger gleich ein Datenübertragungssystem für Sateliten in sein Welt-eroberungs-Programm inplementieren. :p
Naja
Bisch dann
Cl0v3rAls Anfänger kann man ja erstmal was Lernen was veraltet ist und mit neueren
Compilern möglicherweise nicht mehr, oder nicht mehr wie erwartet funktionieren
(wird).Du hast beim Führerschein wahrscheinlich auch den Arm aus dem Fenster gehalten,
statt den Blinker zu verwenden. Ist zwar etwas veraltet, aber du wolltest ja
auch kein Rennfahrer werden.
-
Danke erstmal für die Hilfe!
also 1. das:
#include <iostream.h>
funktioniert erst recht nicht, hab ich schon probiert...
und jetzt sieht es so aus:
#include<iostream> using namespace std; int main(); int main() { { cout<<"Hello World!\n"; return 0; }
hab aber immernoch diese Fehlermeldung, die hab ich schon von Anfang an bekommen:
[cpp]Compiling...
bsp1.cpp
c:\programme\microsoft visual studio\myprojects\beispiel1\bsp1.cpp(11) : fatal error C1004: unexpected end of file found
Error executing cl.exe.Beispiel1.exe - 1 error(s), 0 warning(s)
[/cpp](Wenigstens ist es nur noch 1 Fehler
)
Jemand noch eine Idee?
-
@XieXie:
Zähl mal deine sich öffnenden geschweiften Klammern und die sich schließenden.Caipi
-
Du machst in der main-Funktion zwei {-Klammern auf.
Jockel
-
Ahhhhhhhhh........die Erleuchtung....
Danke Danke!
Nur komisch das die das in dem Buch mit der Klammer schreiben.....?? Wahrscheinlich ein Druckfehler, aber sehr verwirrend....
Nächste Übung:
//Verwendung von cout #include<iostream> using namespace std; int main() { cout<<"Hallo dort.\n"; cout<<"Hier ist 5:"<<5<<"\n"; cout<<"Der Manipulator endl beginnt eine neue Zeile."; cout<< endl; cout<<"Hier ist eine große Zahl:\t"<<70000<<endl; cout<<"Hier ist die Summe von 8 und 5:\t<<8+5<<endl; cout<<"Hier ist ein Bruch:\t\t"<<(float)5/8<<endl; cout<<"Und eine riesengroße Zahl:\t"; cout<<(double)7000*7000<< endl; cout<<"Vergessen Sie nicht, Jesse Liberty durch Ihren Namen zu ersetzen...\n"; cout<<"Jesse Liberty ist ein C++-Programmierer!\n"; return 0; }
und die Fehlermeldung:
Wo kann ich hier erkennen in welcher Zeile der Fehler ist, zeigt der mir das an?
Compiling...
coout.cpp
C:\Programme\Microsoft Visual Studio\MyProjects\cout\coout.cpp(12) : error C2001: newline in constant
C:\Programme\Microsoft Visual Studio\MyProjects\cout\coout.cpp(13) : error C2146: syntax error : missing ';' before identifier 'cout'
Error executing cl.exe.cout.exe - 2 error(s), 0 warning(s)
Sorry, aber ich muss euch mal bisschen mit Fragen bombardieren, es gibt soviel was ich noch nicht verstehe....
Aber für euch ist das doch bestimmt ne gute Wiederholung......gg
Gruß XieXie
-
@XieXie:
Auch hier hast du ein 'schlißendes' Gänsefüßchen vergessen. Das siehst du auch sehr schön an dem Syntaxcoloring hier...Caipi
-
XieXie schrieb:
Wo kann ich hier erkennen in welcher Zeile der Fehler ist, zeigt der mir das an?
...
C:\Programme\Microsoft Visual Studio\MyProjects\cout\coout.cpp(12) : error C2001: newline in constantDie 12 ist die Zeilennummer.
-
Das Englisch übersetzen kann ich auch aber ich finde die Fehler nicht...also wenn du mir jetzt noch sagst wo das sein soll mit dem ";"???
Dank dir! (eigentlich offensichtlich.....aber manchmal ist man doch blind....
)
Gruß Xie
-
XieXie schrieb:
Das Englisch übersetzen kann ich auch aber ich finde die Fehler nicht...also wenn du mir jetzt noch sagst wo das sein soll mit dem ";"???
Habe ich das Englische übersetzt?
So schlecht ist mein Englisch auch wieder nicht ;).Hast du den (Syntax)-Fehler inzwischen gefunden? Wenn nein. Du weißt ja jetzt in welcher Zeile der Compiler den (ersten) Fehler meldet. Desweiteren habe ich dir ja mitgeteilt, dass dort ein schließendes " fehlt.
Die Compilerfehler resultieren daraus. Du musst wissen, dass ein Compiler nur ein Programm ist, was nach vorgegebenen Routinen versucht, die Quelle des Fehlers zu finden. Diese ist aber anhand dieser Routinen nicht immer genau zu spezifizieren, weswegen der Compiler teilweise 'ungenaue' Fehlermeldungen ausgibt.
Der g++ gibt im Gegensatz zum MSV die folgende Fehler-Meldung aus, die in diesem Falle genauer ist.
C:\code\cpp\test.cpp In function `int main()': 12 C:\code\cpp\test.cpp missing terminating " character
Caipi
-
Naja in Englisch steht dort da:
missing ';' before identifier 'cout'
übersetzt: fehlendes ';' vor cout
...deswegen habe ich nach einem fehlenden ; gesucht und nun sagst du mir ich hab ein " vergessen........fazit: das Programm gibt mir nen Fehler falsch an????-so ein Blödsinn wie soll man denn da Fehler finden?
Na gut jetzt funktioniert es.........
Danke! Ich meld mich bestimmt bald wieder .........gg
-
XieXie schrieb:
...deswegen habe ich nach einem fehlenden ; gesucht und nun sagst du mir ich hab ein " vergessen........fazit: das Programm gibt mir nen Fehler falsch an????-so ein Blödsinn wie soll man denn da Fehler finden?
Es ist nicht Aufgabe des Compilers, Fehler in deinem Code zu finden. Wenn er das könnte, könnte er die Fehler ja auch gleich beheben -> Du wärest arbeitslos. Der Compiler teilt dir nur mit, wo bei der Verarbeitung deines Codes Fehler aufgetreten sind. Deswegen ist ein Programm ja auch nicht fehlerfrei, nur weil der Compiler nichts mehr findet
Du solltest dir auch angewöhnen, immer nur die erste Fehlermeldung zu beachten. Es kann vorkommen, dass der Compiler durch den ersten Fehler durcheinanderkommt, und die nachfolgenden Meldungen gar nicht stimmen, und verschwinden, wenn du den ersten Fehler behebst. Darum ist auch die Anzahl der gemeldeten Fehler keine besonders aussagekräftige Größe.
Und die erste Fehlermeldung ist ja korrekt: "newline in constant" bedeutet soviel wie ein Zeilenumbruch in einer (Zeichenketten-)Konstante.
-
XieXie schrieb:
so ein Blödsinn wie soll man denn da Fehler finden?
da kannst du dich als angehender c/c++-programmierer gleich dran gewöhnen
c/c++-compiler-fehlermeldungen sind eigentlich immer müll. die erste fehlermeldung ist noch mehr oder weniger aussagekräftig. die restlichen fehlermeldungen sind in der regel unsinn und entstehen dadurch, daß der compiler wegen des ersten syntaxfehlers aus dem tritt gekommen ist und den rest des programms total falsch versteht.
-
MFK schrieb:
Es ist nicht Aufgabe des Compilers, Fehler in deinem Code zu finden.
ohne worte
-
Was soll daran komisch sein?
-
ok........also immer nur auf mich verlassen und nicht auf den Compiler, verstehe.......und viel Geduld aufbringen....
Ist nur schwierig, wenn man nur html gewöhnt war und nun sich in die Zeichenfolge reinzufitzen und zu erkennen wo man welches Zeichen setzen muss.....da ist html wesentlich übersichtlicher....
Danke erstmal...
LG Xie
-
hm, ich versteh' nicht ganz, was an:
missing ';' before identifier 'cout'
mißzuverstehen ist. In der Zeichenkette in der Zeile dadrüber wird ein "String" begonnen, aber nicht abgeschlossen, woduruch das ";" am Ende Bestandteil der Zeichenkette geworden ist. In der neuen Zeile kommt dann das cout, wodurch die Meldung doch vollkommen richtig ist. Oder?
-
mantiz schrieb:
hm, ich versteh' nicht ganz, was an:
missing ';' before identifier 'cout'
mißzuverstehen ist. In der Zeichenkette in der Zeile dadrüber wird ein "String" begonnen, aber nicht abgeschlossen, woduruch das ";" am Ende Bestandteil der Zeichenkette geworden ist. In der neuen Zeile kommt dann das cout, wodurch die Meldung doch vollkommen richtig ist. Oder?
Ja!
mfg
v R
-
ja, das Problem war aber das ein " gefehlt hatte und nicht ein ; ...
LG Xie