Announcement

Collapse
No announcement yet.

Welche Zeile bewirkt hier eine Rekursion?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Welche Zeile bewirkt hier eine Rekursion?

    Hallo.

    Ich bin etwas am verzweifeln.... Ich versuche, seit einiger Zeit, herauszufinden welche Zeile in einem Programm,
    aus einem Buch, für die Rekursion verantwortlich ist, und auch das warum interessiert mich.

    und eine Wichtige Frage die ich mir satelle;

    warum gibt >>cout.put(c);<< das eigegeben rückwärts aus?

    Ist jemand bereit mir das zu erklären?
    Danke im voraus




    #include <iostream>
    using namespace std;

    void getput(void);

    int main()
    {

    cout << "Bitte geben SIe eine Textzeile ein:\n";

    getput();

    cout << "\nByeBye" << endl;



    return 0;

    }

    void getput()
    {
    char c;
    if (cin.get(c) && c != '\n')
    {
    getput();
    }
    cout.put(c);
    }
    Zuletzt editiert von tryn4x; 25.06.2020, 13:23.

  • #2
    void getput()
    {
    char c;
    if (cin.get(c) && c != '\n')
    getput();
    cout.put(c);
    }

    Ist die if-Bedingung erfüllt (es wird in die Bedingung verzweigt; was mit {} lesbarer wäre), wird wieder die Funktion getput (sich selber) aufgerufen. Solange bis die Bedingung nicht mehr erfüllt ist
    Christian

    Comment


    • #3
      Wenn du hier einen Kommentaar schreibst, bekommt das keiner mit
      Was könnte an der Frage wichtig sein?

      Schau dir den Code an, debugge ihn

      Es wird solange rekusiv immer wieder getput aufgerufen, bis ein enter kommt. Dann werden alle einzelnen Funkionen die rekursiv aufgerufen wurden von rückwärts beendet. Somit wird das zuletzt eingegebene Zeiche als erstes ausgegeben

      Christian

      Comment


      • #4
        Hallo

        Leider hab ich das mit dem debugging noch nicht so drauf, sitze aber dran.
        Für mich war die Frage wichtig, warum die Eingabe Rückwärts ausgegeben wird.
        Ich hab mich mal versucht die >>std:stream<< zu verstehen bzw. versucht auf meine Frage eine Antwort zu finden
        doch leider noch kein Ergebnis.
        Aber trotzdem danke für die schnell Antwort

        Comment


        • #5
          Ich nochmal

          Weil die eingegeben Buchstaben bzw die Funktion auf dem Stack liegen und das letzte eingegebene Zeichen zuerst von Stack genommen wird?
          Lifo Prinzip?!


          wäre ja super, ist mir aber leider erst jetzt eingefallen.
          Zuletzt editiert von tryn4x; 25.06.2020, 13:50.

          Comment


          • #6
            ja, so ist es
            Christian

            Comment

            Working...
            X