Probleme mit der time funktion in einer if Abfrage
-
Hi!
Ich möchte einen Timer starten, der für einige Sekunden eine while-schleife ausführt. er führt die schleife zwar aus, aber befindet die erste if-Abfrage immer als true. Dadurch ist Zeit immer 0 und start und seconds immer gleich. Hier der betreffende ausschnitt aus dem quellcode:
Temperatur = 32; while (Zeit < 5) { seconds = time (NULL); if (Zaehlstart = 1) { time (&start); } if (Temperatur >= 30) { Zaehlstart = 0; Zeit = seconds - start; } else { Zaehlstart = 1; Zeit = 0; } cout<< "Die Temperatur betraegt: "<< Temperatur<< " Grad"<<endl; cout<< Zeit << endl; cout<< start << endl; cout<< seconds << endl; } cout<< "Abbruch" << endl;Danke für die Hilfe!
lg,
LeFish
-
Du vergleichst im if-Zweig auch nicht, sondern machst eine Zuweisung. So sähe der Vergleich aus:
if (Zaehlstart == 1) { // ein '=' vergessen^^ time (&start); }
-
LeFish schrieb:
if (Zaehlstart = 1) {
(Zeile
Hier erfolgt eine Zuweisung, du gibst zaehlerstart also den wert 1 und das ist immer true. du willst aber auf gleichheit überprüfen also musst duif (Zaehlerstart == 1)schreiben. um dieses problem zu vermeiden kann es helfen die operanden zu vertauschen, also
if (1 == Zaehlerstart)Dann würde nämlich der compiler mucken machen wenn da statt "==" "=" steht
if (1 = Zaehlerstart)
-
Hallo!
Danke, damit funktioniert es jetzt einwandfrei!!
lg,
LeFish
-
bill bones schrieb:
LeFish schrieb:
if (Zaehlstart = 1) {
(Zeile
Hier erfolgt eine Zuweisung, du gibst zaehlerstart also den wert 1 und das ist immer true. du willst aber auf gleichheit überprüfen also musst duif (Zaehlerstart == 1)schreiben. um dieses problem zu vermeiden kann es helfen die operanden zu vertauschen, also[cpp]**if (1 == Zaehlerstart)[/**cpp]Dann würde nämlich der compiler mucken machen wenn da statt "==" "=" steht[cpp]if (1 = Zaehlerstart)[/cpp]
ist mir noch nie in den sinn gekommen, find den vorschlag aber irgendwie geil
danke auch von mir 