Konfuse Fehlermeldungen bei Visual C++
-
Ich arbeite mit dem buch "Jetzt lerne ich" "C++". Das Programm ist korrekt abgeschrieben aber der Compiler bringt Fehlermeldungen wie: fehlendes ";" vor } oder fehlendes ";" vor main. Des sind völlig blödsinnige Meldungen. Ich versteh des net. Könnt ihr mir helfen? Ím Buch steht des auch net so drin.
Thx Nightwolf
-
Bitte Code posten, sonst kann hier keiner etwas sagen.
-
Also der Code:
// Listing 5.4 - Verwendung mehrerer return-Anweisungen#include <iostream.h>
int Doubler(int AmountToDouble);
int main()
{int result = 0;
int input;cout << "Zu verdoppelnde Zahl eingeben: ";
cin << input;cout << "\nVor Aufruf von Doubler... ";
cout << "\nEingabe: << input << " Verdoppelt: << result << "\n";result = Doubler(input)
cout << "\nZurück aus Doubler... \n"
cout << "\nEingabe: " << input << " Verdoppelt: << result << "\n"return 0;
int Doubler(int original)
{
if (original <= 10000)
return original * 2;
else
return -1;
}Und die Fehlermeldung:
--------Konfiguration: zrt8sd - Win32 Debug--------------------
Kompilierung läuft...
zrt8sd.cpp
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(14) : error C2676: Binaerer Operator '<<' : 'class istream_withassign' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten Operator geeigneten
Typ nicht
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(17) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Verdoppelt'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(17) : error C2143: Syntaxfehler : Fehlendes ';' vor '<<'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(21) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cout'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'cout'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2017: Ungueltige ESCAPE-Folge
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2001: Zeilenumbruch innerhalb einer Konstanten
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'n'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2065: 'n' : nichtdeklarierter Bezeichner
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(22) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(24) : error C2143: Syntaxfehler : Fehlendes ';' vor 'return'
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(27) : error C2601: 'Doubler' : Lokale Funktionsdefinitionen sind unzulaessig
c:\c++ programmierung\visual c++ 6.0 autorenedition\msdev98\bin\zrt8sd.cpp(33) : fatal error C1004: Unerwartetes Dateiende gefunden
Fehler beim Ausführen von cl.exe.zrt8sd.exe - 13 Fehler, 0 Warnung(en)
Keinen blassen Schimmer.
-
Versuch doch mal folgendes:
1)#include <iostream> using namespace std;
oder
2) nimm statt cout und cin std::cout und std::cinTeste mal eins von beidem
----------------------------------------------------
Edit:Vergiss das - das war nur was für die Zukunft.
Also erster Fehler:
cin << input;
sollte sein cin >> input;
Dann sollteest du bei deinen cout mal die " überprüfen.
Als nächstes sollte hinter jeder Anweisung ein ; stehen.
Und vor das int Doubler am Ende kommt noch ein } als schliessendes Tag für die main.Am Ende sollte das ganze so aussehen:
#include <iostream> using namespace std; int Doubler(int AmountToDouble); int main() { int result = 0; int input; cout << "Zu verdoppelnde Zahl eingeben: "; cin >> input; cout << "\nVor Aufruf von Doubler... "; cout << "\nEingabe:" << input << " Verdoppelt:" << result << "\n"; result = Doubler(input); cout << "\nZurück aus Doubler... \n"; cout << "\nEingabe: " << input << " Verdoppelt:" << result << "\n"; return 0; } int Doubler(int original) { if (original <= 10000) return original * 2; else return -1; }
Und da du offenbar MSVC verwendest mach mal Strg + "A" und dann Alt + F8.
Da solltest du genau sehen wo ; und } fehlen![ Dieser Beitrag wurde am 20.06.2003 um 21:21 Uhr von Drakos editiert. ]
-
und cin >> variable bzw. cout << variable
-
cout << "\nEingabe: << input << " Verdoppelt: << result << "\n";\
Denk an die Anführungszeichen!
[ Dieser Beitrag wurde am 21.06.2003 um 02:24 Uhr von THE_FreaK editiert. ]
-
Hi
Ausserdem hast du beim Aufruf von Doubler das semicolon vergessen.
-
So viele Fehler wie ich gemacht hab, kann des **** Programm ja gar net laufen. Danke Leute. Habs jetzt hinbekommen.