problem bei meinem mini prog
-
ähm also ich arbeite zurzeit mit Dev-C++ und da tritt der fehler beim kompilieren auf. Als Fehlerlog bekomme ich
In function
int main()': invalid operands of types \float' and `const char[2]' to binaryoperator==' invalid operands of types \float' and `const char[2]' to binary `operator=='
no match for 'operator+' in 'rw + bw'also ich habs jetzt mit float versucht aber hat nichts geändert...als ich dass ganze ohne if else funktion gemacht habe hats auch funktioniert
-
phreakcoder schrieb:
... Dev-C++ ...
3. Fehler: Du Verwendest Dev-C++
Nimm lieber Code::Blocks oder Microsoft Visual Studio 2008 Express Edition.
Dev-C++ wird nicht mehr weiterentwickelt und gilt als deprecated!Grüssli
-
microsoft visual studio will ich wenn möglich vermeiden da es sehr groß ist und ich nur eine ISDN i-net verbindung habe
-
code::blocks ist ziemlich klein, ich glaub 16 mByte, ohne compiler und 22 mit mingw compiler
-
ok bin gerade ma laden...aber ist der codeblock sonst ok oder ist noch ein fehler drin?
-
fehler kenne ich keine, du musst nur schauen dass das mit dem compiler klappt, das erste mal als ich es installiert hatte, konnte ich nix kompileren^^
ach ja du kannst dir auch eine DVD mit dem kompletten VS 2008 EE bestellen bei microsoft
-
phreakcoder schrieb:
ok bin gerade ma laden...aber ist der codeblock sonst ok oder ist noch ein fehler drin?
Ich hoffe mal du hast meine Fehler 1 und 2 beachtet.
Ehm, doch habe gerade dank der Fehlermeldung noch einen Fehler gefunden:int geschw, gefahr; string bw; // bw ist string cout << "Geben Sie eine Geschwindigkeit (km/h) ein: \n\n"; cin >> geschw; cout << "Gefahrbremsung? (j/n)" << endl; cin >> gefahr; if ( gefahr == "n" || gefahr == "N") { int bw = (geschw / 10) * (geschw / 10); // bw ist int und wird gleich wieder verworfen } else { int bw = ((geschw / 10) * (geschw / 10)) / 2; // bw ist int und wird gleich wieder verworfen } int rw = (geschw / 10) * 3; // scheint ok zu sein int aw = rw + bw; // das geht nicht. bw ist hier ein leerer string.Kann es sein, dass du oben bei
string bweigentlichint bwmeintest und unten die ints vor dem bw weglassen?
Wenn das nicht klar ist, dann empfehle ich dringend nochmals die Grundlagen von C++ durch zu ackern!Grüssli
-
ok ähm dadurch dass ich so gut wie alles ausprobiert habe xD, habe ich das wahrscheinlich übersehen...aber na gut hier mein neuer code
#include <iostream> #include <cstdlib> #include <cstdio> using namespace std; int main() { float geschw, gefahr; cout << "Geben Sie eine Geschwindigkeit (km/h) ein: \n\n"; cin >> geschw; cout << "Gefahrbremsung? (j/n)" << endl; cin >> gefahr; if ( gefahr == "n" || gefahr == "N") { float bw = (geschw / 10) * (geschw / 10); } else { float bw = ((geschw / 10) * (geschw / 10)) / 2; } float rw = (geschw / 10) * 3; float aw = rw + bw; cout << endl; cout << "Ihr Reaktionsweg betraegt: " << rw << " meter" <<endl; cout << "Ihr Bremsweg betraegt: " << bw << " meter" << endl; cout << "Ihr Anhalteweg betraegt: " << aw << " meter \n\n" << endl; system("PAUSE"); return 0; }
-
Mein zweiter aufgeführten Fehler hast du immer noch nicht korrigiert. Oder hast den Post gar nicht gelesen?
Dravere schrieb:
Fehler:
1. Keine genaue Fehlerbeschreibung geliefert.
2.if ( gefahr == "n" || gefahr == "N")
"x" liefert ein char const*
'x' liefert ein char
if ( gefahr == 'n' || gefahr == 'N')Warnungen:
1. Unnötig viele Headers inkludiert.
2. C++ C-Headers inkludiert. Man sollte wenn möglich nicht C und C++ mixen.
3.getch()ist nicht Platform unabhängig, genauso wie<conio.h>
4. Es wäre eine Überlegung wert, ob man nicht besser mit float oder double rechnen möchte.
5. Pass auf mit der Verwendung vonusing namespace std;.Grüssli
Und du scheinst noch nachholbedarf in Sachen Scope zu haben! Naja, ich schreib dir nochmals ein paar Hinweise hin.
if ( gefahr == "n" || gefahr == "N") // "" gibt const char*, '' gibt char { float bw = (geschw / 10) * (geschw / 10); // bw wird erstellt, Wert zugewiesen. } // bw wird zerstört. else { float bw = ((geschw / 10) * (geschw / 10)) / 2; // bw wird erstellt, Wert zugewiesen. } // bw wird zerstört. float rw = (geschw / 10) * 3; float aw = rw + bw; // bw ist gar nicht vorhanden!Grüssli
-
ahh super jetzt hab ichs gecheckt xD...danke für die hilfe
PS: gibt es Code::Blocks auch auf deutsch?