bool Funktion mit if auf ture prüfen:



  • Hallo,

    ich habe eine Funktion diese möchte ich auf richtigkeit prüfen.

    //Funktionsprototyp
    bool SchaltJahr (int iCheck);
    
    int main(void)
    {
       SchaltJahr(iYY);
    
    //Wie Prüfe ich es ob ich jetzt in einer If-Abfrage ob Schlatjahr true oder //false zurück gegeben hat ?
          if (SchaltJahr == true)
          {
             iTageJahr = iTageJahr-1;
          }
    
    //....
    
    }
    
    bool SchaltJahr (int iCheck)
    {
       if ((iCheck % 400) == 0 || (iCheck % 4) == 0)
       {
       return false;
       }
       else
       {
       return true;
       }
    }
    


  • nimm die funktion in die if bedingung, denn sie liefert dir einen boolschen wert.

    zum anderen kannst du in der funktion selber nur einen wert returnen, du brauchst das if else konstrukt nicht unbedingt.



  • bool bRet = Schaltjahr(iYY);
    
    if (bRet)
    .
    .
    .
    

    oder

    if (Schaltjahr(iYY))
    .
    .
    .
    

    elise schrieb:

    zum anderen kannst du in der funktion selber nur einen wert returnen, du brauchst das if else konstrukt nicht unbedingt.

    bool SchaltJahr (int iCheck)
    {
       return ((iCheck % 400) == 0 || (iCheck % 4) == 0);
    }
    


  • @horst2

    nicht imma alles vorsage, dann lernt mensch nüscht 😉 🤡


  • Mod

    ich bezweifle, dass bool schaltjar(int) das macht, was es soll.



  • ohh wie nett so schaut das ganze jetzt viel besser aus DANKE..

    Gibts hier was zumeckern?:

    int IntToStr (string sChange)
    {
       stringstream Str;
       Str << sChange;
       int iChanged;
       Str >> iChanged;
    
       return iChanged;
    }
    

    MfG

    func


  • Mod

    func schrieb:

    ohh wie nett so schaut das ganze jetzt viel besser aus DANKE..

    Gibts hier was zumeckern?:

    int IntToStr (string sChange)
    {
       stringstream Str;
       Str << sChange;
       int iChanged;
       Str >> iChanged;
    
       return iChanged;
    }
    

    MfG

    func

    vermutlich hat die funktion den falschen namen. und eigentlich brauchst du auch keinen ausgewachsenen stringstream, da der stream ja identisch mit einem string ist, den du schon hast:

    int StrToInt (const string& sChange)
    {
       istringstream Str( sChange );
       int iChanged;
       Str >> iChanged;
       return iChanged;
    }
    


  • Schaltjahre sind Jahre, die durch 4 teilbar sind, außer den Jahren die durch 100 aber nicht durch 400 teilbar sind.

    if((x%4 == 0)&&!((x%100==0)&&(x%400!=0)))
       // Schaltjahr
    else
       // kein Schaltjahr
    


  • hast recht aber sollte auch StrToInt heißen. 😃 aber wozu das "const string&" ich übergebe doch nur ein Int. ?!



  • func schrieb:

    hast recht aber sollte auch StrToInt heißen. 😃 aber wozu das "const string&" ich übergebe doch nur ein Int. ?!

    nein, du übergibst ein string-objekt. und damit du das nicht kopieren musst, übergibts du nur eine referenz.


  • Mod

    und weil du den string nicht veränderst, übergibst du eine referenz-to-const, sonst könnte man der funktion auch keine const strings übergeben.



  • Ja danke, jetzt hab ich es geschnalt.

    und @ Vertexwahn Danke. ich hab noch an nem alten stück gearbeitet wo es noch Falsch war danke jetzt arbeite ich wieder an der richtigen/neusten .cpp 😃

    DANKE noch mal an alle für die SCHNELLE hilfe

    (Schön das es Menschen gibt die Helfen wollen.)


Anmelden zum Antworten