Bjarne Stroustrup - Die C++ Programmiersprache Kap5 (Ein Taschenrechner) Frage...



  • Hey,

    ich sitze gerade (mal wieder) vor diesem Taschenrechner und probiere die Syntax zu durchblicken, aber ich komme (mal wieder 😞 ) nicht weiter.... und nun habe ich mich gefragt ob hier jemand (vll von einem Lehrer oder Prof.. oder vll sogar von sich selber) eine ausführlichere Erklärung hat als die in dem Buch mitgelieferte.. oder vll eine Site kennt auf der ich eine finde...(selber bin ich über google leider nicht weiter gekommen.(die häufigstens Links führten zu Sites auf denen man das Buch kaufen konnte...)
    Ich würde gerne weiter kommen, aber ich will nicht einfach ein ganzes Kapitel (verständnissmässig) überspringen...

    Ich denke was mir am meisten Verständnissschwierigkeiten bringt ist die kombinierte Verwendung von cin und cin.putback()..... ich habe selber probiert in eigenversuchen die Funktionsweise von cin.putback() herauszufinden, bin aber in einer Sackgasse gelandet... und nun bin ich etwas am verzweifeln 🙄 ich hoffe hier kann mir jemand helfen

    Danke und freundliche Grüsse Jud4s



  • Welche auflage hast du? Bei mir ist das Kapitel 6! Ich selbst habe es seien gelassen und beim nächsten kapitel weitergelesen. Mit der Zeit wird alles klarer. Ich habe dieses Beispiel erst beim 3. lesen verstanden (wie auch viele andere dinge).



  • 4.aktualisierte auflage....

    hmm mal sehen wenn sich sonst niemand meldet werde ich es auch machen (müssen)...



  • Mit std::basic_iostream<C,T>::putback(char_type c) kannst du einfach ein Zeichen wieder in den Stream packen, nach dem du es gelesen hast. Wenn du nun das nächste mal liest, liest du das zurück gestellte Zeichen. Das ist beim Parsen eben recht praktisch.

    <edit>Ist bei mir aber auch Kapitel 6</edit>



  • Mit std::basic_iostream<C,T>::putback(char_type c) kannst du einfach ein Zeichen wieder in den Stream packen, nach dem du es gelesen hast. Wenn du nun das nächste mal liest, liest du das zurück gestellte Zeichen. Das ist beim Parsen eben recht praktisch.

    Könntest du ein konkreten beispiels-Codeblock mit Anmerkungen machen, weil deine Erläuterung kannte ich bereits 😉

    off topic: Ein wahrhaftig diablolische Definition dieses Problems :p :Definition at line 666 of file istream.tcc.



  • In der Tat ist dieses Beispiel nicht ganz einfach zu durchschauen, aber wenn ich dich wäre, würde ich mich davon nicht abhalten lassen. Wenn ich mich recht erinnere ist das meiste ja nur als komplexeres Beispiel zu handhaben und du musst den meisten Code gar nicht verstehen, um zu verstehen, was er dir damit sagen will. 😉

    Im übrigen gehört cin usw. zu dem Standarbibliotheken Zeugs, dass in dem Buch erst später angeschaut wird. Also nicht den Kopf zerbrechen und lieber später einfach das Beispiel nochmal lesen, als dich jetzt darüber zu ärgern. 😉



  • Jud4s schrieb:

    Mit std::basic_iostream<C,T>::putback(char_type c) kannst du einfach ein Zeichen wieder in den Stream packen, nach dem du es gelesen hast. Wenn du nun das nächste mal liest, liest du das zurück gestellte Zeichen. Das ist beim Parsen eben recht praktisch.

    Könntest du ein konkreten beispiels-Codeblock mit Anmerkungen machen, weil deine Erläuterung kannte ich bereits 😉

    #include <sstream>
    #include <iostream>
    #include <ostream>
    
    int main() {
      std::stringstream s("abcdef");
      char c = s.get();
      std::cout << c << '\n';
      s.putback(c);
      char d = s.get();
      std::cout << d << '\n';
    }
    

    Kommentier einmal das putback aus und lass es einmal drin und schau dir jeweils an, was das Programm ausgibt.


Anmelden zum Antworten