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 du

    if (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 du

    if (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 🙂


Anmelden zum Antworten