Programm läuft nicht...
-
hallo zusammen bin hier neu also seit tolerant, falls ich net gleich auf anhieb im richtigen genre gelandet bin.
ich hab hier ein recht simples programm welches beim ausführen auch läuft. ich gebe 2 zahlen ein bestätige mit enter und das programm bricht ab..... hab schon alles durchsucht aber find den fehler nicht...
#include<iostream> using namespace std; int main () { double a,b,c; cout<<"Bussgeldberechner"<<endl; cout<<"Bitte geben Sie Ihre Geschwindigkeit ein!"<<endl; cin>>a; cout<<"Bitte geben Sie die Geschwindigkeitsgrenze ein!"<<endl; cin>>b; c=a-b; if (c<0) { cout<<"Sie liegen noch unter der Geschwindigkeitsgrenze!"<<endl; } if (c=0 & c<=10) { cout<<"Sie haben noch mal Glueck gehabt! Sie muessen kein Bussgeld bezahlen!"<<endl; } if (c>10 & c<=20) { cout<<"Sie muessen ein Bussgeld von 40 Euro bezahlen!"<<endl; } if (c>20 & c<=30) { cout<<"Sie muessen ein Bussgeld von 100 Euro bezahlen!"<<endl; } if (c>30) { cout<<"FUEHRERSCHEINENTZUG!!!"<<endl; } return 0; }
-
Die Bedingung bei den if Anweisungen sind falsch. Ersetze die & einfach durch &&. Wenn du nur ein & schreibst wäre das ein Bitoperator, du willst allerdings den logischen "Und" Operator benutzen, weshalb && hier angebracht ist.
-
für deine deutsch http://www.seidseit.de/
= ist eine zuweisung
== für den vergleich
-
hab ich ersetzt, klappt jedoch immer noch nicht. hab auch mal alle bedingungen rausgenommen und nur nach c=a-b; cout<<c<<endl; getippt um mal zu prüfen aber selbst da schreibt er in nem bruchteil ner sekunde die zahl und beendet das programm..
-
Dein Threadtitel ist nichtssagend...
-
cin.get();
Aber zu diesem Thema gibt es doch schon massig Threads nd FAQs. Man kann doch wohl erwarten, dass man erstmal sucht bevor man was neues auf macht.
-
liegt wohl daran das kein offensichtlicher fehler beschreibbar ist... wie hätt ich es denn besser formulieren sollen? bin für jeden hinweis dankbar
-
hab auch schon vorher recherschiert cin.get(); hat mich aber auch noch nicht weitergebracht. danke schonmal für die antworten
-
Wie meinste das mit nicht weitergebracht?
Was möchtest du denn jetzt noch wissen, was du nicht alleine rausfinden kannst?
-
wie gesagt, hab auch mal alle bedingungen rausgenommen und nur nach c=a-b; cout<<c<<endl; getippt um mal zu prüfen aber selbst da beendet er nach der zahleneingabe... kann es sein das irgentwelche dateien dem compiler fehlen?
-
naja selbst mit cin.get(); am ende bricht das programm ab
-
Nein, schreib einfach mal "cin.get();" vor dein "return 0;" Sonst beendet das Programm ja automatisch, wenn alle Befehle abgearbeitet sind. cin.get() wartet sozusagen noch bis du eine Taste drückst und erst dann ist der ganze Code abgearbeitet.
-
versuch mal ein cin.sync( ) nach jedem cin >> ...
gruß Tobi.
-
Ja ich denke du hast es nach dem return geschrieben oder?
-
nee nee
hab ich vorm return(0);
-
okay also mit cin.sync( ) nach den cin's wartet er nach den zahlen bestätigen auf eine erneute bestätigung aber darafhin bricht er wieder ab
-
Unter umständen reicht ein cin.get(); nicht aus um das schließen des Fensters zu verhindern. Dann kann man mit cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get(); den Eingabepuffer löschen.
Kurze Erklärung: cin.clear() versetzt cin wieder in den Ursprungsstatus (zB Fehler werden wieder zurückgesetzt). cin.ignore(cin.rdbuf()->in_avail()); löscht alle Zeichen die noch im Einagebpuffer stehen (wenn man cin.get() schreibt, und jemand gibt 2 Zeichen ein, bleibt 1 Zeichen im Puffer stehen - denn cin.get() liest ja nur eines aus).Im Web gefunden vielleicht hilft das.
-
habt ihr mal meinen quelltext bei euch eingefügt? kann sein das meine bloddshed oberfläche ne macke hat
-
bzw. meine eingabeaufforderung
-
Also wenn ich es von VC++ ausführe wird das Programm am ende automatisch angehalten und gewartet, bis ich eine Taste drücke. Wenn ich die .exe aber so ausführe hab ich das selbe Problem.