error C2447
-
habe ich doch ... ?!
-
Und - wer hat den Unterschied erkannt zwischen der Funktionsdeklaration
int main();un einer Funktionsdefinitionint main() {...}?
-
guckmal schrieb:
Gucky schrieb:
machs besser so:
int main ();

@TE:
Hinter der main muss dass Semikolon weg...so ist es nur eine Funktionsdeklaration aber keine Definition. Main darfst du auch gar nicht deklarieren.
Was soll denn das für ein Konstrukt in Zeile 6 sein?
Und in Zeile 7 fehlt auch ein Semikolon.Lg freeG
-
Weiß jetzt grade nicht was ihr von mir wollte, hatte da von anfang an int main (); stehen o.ô
@ fr33g, kenne mich in dem Bereich noch nicht wirklich so gut aus, hab da oben also alles reingeschmissen was ich verwenden wollte :3
-
Status schrieb:
Weiß jetzt grade nicht was ihr von mir wollte, hatte da von anfang an int main (); stehen o.ô
Ja das ist ja auch total falsch;-), es muss so sein:
int main() { // code }Lg freeG
EDIT:
Also:
int main() { int value 1, value2; std::string arithmeticOperator; // So nun ließt du beide Zahlen ein und deinen Rechenoperator // Und dann kannste mit if eben prüfen welches eingeben wurde und darauf entsprechend reagieren )
-
Hab ja main ()
{code
}
Und das ";" brauche ich, da ich sonst div. Fehlermeldungen kriege.
-
Status schrieb:
Hab ja main ()
{code
}
Und das ";" brauche ich, da ich sonst div. Fehlermeldungen kriege.
Ja vermutlich, weil dein Code voller Fehler ist;-)
Versuchs mal so wie ich gepostet habe, wenn dann weiterhin Fehler auftauchen poste deinen neuen Code und wir werden dir helfen.Lg freeG
-
Mh, meinst also so ?
#include <iostream> #include <conio.h> using namespace std; int main () { int Zahl, Zahl2,Ergebnis,Rechenart; std::string arithmeticOperator; cout <<"Geben sie die erste Zahl ein\n"; cin >> Zahl; cout <<"Geben sie die zweite Zahln ein \n"; cin >> Zahl2; cout<<"Wählen sie die Rechenart\n"; cin >>Rechenart if (Rechenart == '+') { Ergebnis = Zahl + Zahl2 cout<<Ergenis<<endl; } if (Rechenart == '-') { Ergebnis = Zahl - Zahl2 cout<<Ergebnis<<endl; } if (Rechenart == '*') { Ergebnis = Zahl * Zahl2 cout<<Ergebnis<<endl; } if (Rechenart == ':') { Ergebis = Zahl / Zahl2 cout<<Ergebnis<<endl; } else cout <<" Existiert nicht"; getch (); return 0; }Kriege ich folgende Fehler:
1>Kompilieren...
1>Taschenrechner.cpp
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor 'if'
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(21) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cout'
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(21) : error C2065: 'Ergenis': nichtdeklarierter Bezeichner
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(27) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cout'
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(33) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cout'
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(38) : error C2065: 'Ergebis': nichtdeklarierter Bezeichner
1>c:\users\config\documents\visual studio 2008\projects\taschenrechner\taschenrechner\taschenrechner.cpp(39) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'cout'
1>Das Buildprotokoll wurde unter "file://c:\Users\Config\Documents\Visual Studio 2008\Projects\Taschenrechner\Taschenrechner\Debug\BuildLog.htm" gespeichert.
1>Taschenrechner - 7 Fehler, 0 Warnung(en)
-
Variablennamen dürfen keine Leerzeichen enthalten. Und außerdem solltest du dir einig werden, ob du die Variable nun "value1" oder "Zahl1" nennen willst

-
Ist mir grad schon aufgefallen, habs geändert ;<
-
Das ist jetzt echt nicht dein ernst? Ein bisschen Eigeninitiative kann ja wohl nicht schaden....du musst natürlich jetzt alles umbennen, deine Variablen heißen nun value1, value2 und arithmeticOperator und nicht zahl, zahl2 und rechenart....
Lg freeG
-
cin >>Rechenartda fehlt ja auch tatsächlich ein Semikolon.
Kein Wunder das der Compiler dann meckert.
abgesehen davon, solltest du mal deine if - else Logik überdenken.
so wie es momentan ist, gibst du immer wenn du nicht : rechnest "existiert nicht"
aus.
vielleicht bietet sich ja auch an dieser stelle für dich ein switch() case um den Operator an.
-
ausserdem fehlt ja in jedem deiner if() Blöcke nach der Zuweisung auf Ergebnis das ; :o
-
Ersetze alle
ifdurchelse ifausser dem Ersten.
-
Was mir gerade noch aufgefallen ist:
Status schrieb:
int Zahl, Zahl2,Ergebnis,Rechenart; cout<<"Wählen sie die Rechenart\n"; cin >>Rechenart; //das Semikolon wurde schon erwähnt if (Rechenart == '+') { ... }Da d[rfte schon die vernünftige Eingabe des Operators scheitern (es sei denn, der Nutzer kennt die ASCII-Codes von +, - etc auswendig. Du solltest Rechenart lieber als char anlegen.
PS: Wenn du deine Fragen nachträglich umeditierst, verbessert das nicht gerade die Lesbarkeit des Threads

-
Bin es aus anderen Foren gewohnt, dass Doppelpost's verboten sind, was da der Fall gewesen wäre ^^.
Bzw. hab den Code zum Laufen bekommen:
#include <iostream> #include <conio.h> using namespace std; int main () { int Zahl, Zahl2,Ergebnis; char Rechenart; std::string arithmeticRechenart; cout <<"Geben sie die erste Zahl ein\n"; cin >> Zahl; cout <<"Geben sie die zweite Zahln ein \n"; cin >> Zahl2; cout<<"Waehlen sie die Rechenart\n"; cin >>Rechenart; if (Rechenart == '+') { Ergebnis = Zahl + Zahl2; cout<<Ergebnis<<endl; } if (Rechenart == '-') { Ergebnis = Zahl - Zahl2; cout<<Ergebnis<<endl; } if (Rechenart == '*') { Ergebnis = Zahl * Zahl2; cout<<Ergebnis<<endl; } if ((Rechenart == '/') || (Rechenart == ':')) { Ergebnis = Zahl / Zahl2; cout<<Ergebnis<<endl; } getch (); return 0; }Danke für die Hilfe
