Funktions frage



  • Hallo community ,

    ich habe mich gefragt ob es möglich ist , festzustellen ob eine funktion aufgerufen wurde oder nicht.

    Das könnte ich ganzgut gebrauchen :

    Ich hab eine programm.
    Mit der Enter taste kommen 3 Optionen(diese liegen in einer void setting(void);) :

    (E)Open explorer
    (C)Open console
    (Q)Quit the window
    

    Ich möchte nun das man diese 3 Optionen nur gewählt werden können , fallse die funktion setting aufgerufen wird.

    Ich hatte da an sowas gedacht :

    if(settings() = true){while(kbhit = true)...}
    

    Ich dachte das wenn eine funktion aufgerufen wird , sie automatisch true wird ?
    Gibt es da eine bestimmte funktion ?



  • Ich versteh zwar überhaupt nicht was du da vorhast, aber wenn ich es richtig verstanden habe, möchtest du dass eine Funktion true zurückgibt, wenn sie vorher schon einmal aufgerufen wurde?

    bool f()
    {
      static bool called = false;
      if (!called)
      {
         // was passiert, wenn sie noch nie aufgerufen wurde?
         called = true;
         return false;
      }
      else
      {
         // ab dem zweiten Aufruf.
      }
      return called;
    }
    

    Ich vermute aber mal, dass du ziemlich Quatsch vorhast.



  • The Melder schrieb:

    ich habe mich gefragt ob es möglich ist , festzustellen ob eine funktion aufgerufen wurde oder nicht.

    Nein. Es sei den du speicherst dies irgendwo ab.

    The Melder schrieb:

    if(settings() = true){while(kbhit = true)...}
    

    Ich dachte das wenn eine funktion aufgerufen wird , sie automatisch true wird ?
    Gibt es da eine bestimmte funktion ?

    Nein. Du kannst aber den Rückgabewert einer Funktion auswerten. Aber dann verwendet man auch den Vergleichsoperator ("==") nicht den Zuweisungsoperator ("=").

    Dem Code nach solltest du ein C++ Buch lesen (und zwar von Anfang an).



  • Nein , bitte versteh das code beispie nicht falsch , es ist klar das das nicht geht.
    Ok das mit dem return wert hört sich gut an , ich werde mal nachlesen und googeln.

    Aber noch ne Frage :

    Wenn ich das richtg verstanden habe :

    Wenn eine funktion erfolgreich aufgerufen wird dann hat sie immer return true; ?
    Und was ist wenn sie nicht aufgerufen wurde ? hat sie dann überhaupt eine return wert ? Oder ist der dann immer false oder etwas anderes?



  • ahh und

    Nein. Es sei den du speicherst dies irgendwo ab.

    Was meinst du mit dem abspeichern ?



  • asc schrieb:

    Dem Code nach solltest du ein C++ Buch lesen (und zwar von Anfang an).

    Kann ich so nur nochmal unterstreichen.



  • The Melder schrieb:

    Wenn ich das richtg verstanden habe

    Nein, hast du nicht, und du liegst auch komplett falsch. Und ohne Böse zu sein: dir fehlt soviel Grundlagenwissen, das es auch wenig Sinn hat jetzt anzufangen dir etwas erklären.

    Wähle ein gutes C++ Buch (z.B. Thinking in C++, C++ Primer...) und beginne mit dem Lesen und Üben. Wenn du dann Fragen hast, komme wieder. Nur auf deinen aktuellen Wissenstand lässt sich nicht ohne viel Aufwand aufbauen.



  • Dem muss ich mich anschliessen. Dir fehlen offensichtlich grundlegendste Kenntnisse im Bezug auf Variablen und Funktionen. Ohne diese ist aber kein sinnvolles Programm möglich, und der Versuch, es irgendwie dennoch hinzukriegen, ist verschwendete Zeit.

    Du kannst das alles nicht mal eben hier im Forum lernen, sondern solltest dir deine Wissenslücken eingestehen und genügend Zeit in ein gutes Buch investieren. In der Zeit, in der du hier Fragen stellst, hättest du nämlich einiges lernen können.



  • Dankeschön für eure Antworten erstmal.
    Ich weiß das ich nicht viel kann , das brauch mir nicht jeder sagen.
    Ich lese gerade über funktionen und da sthet , das das return die funktion beendet.Doch ich frage eben wei lda steht , das void funktionen keinen rückgabewert haben.Ich werde jetzt noch das kapitel zuende lesen und formulier dann meine Frage neu.

    Bis dann



  • Gute idee


  • Mod

    The Melder schrieb:

    Ich lese gerade über funktionen und da sthet , das das return die funktion beendet.Doch ich frage eben wei lda steht , das void funktionen keinen rückgabewert haben.

    Das ist kein Widerspruch. return kann auch einfach nichts zurückgeben. Also einfach nur return; , wenn du eine Funktion ohne Rückgabewert vorzeitig beenden möchtest.


Anmelden zum Antworten