Standard C++ IOStreams and Locales



  • Tachyon schrieb:

    Irgendwie scheint es mir, als wenn dies das einzige Buch ist, das C++Streams mehr als nur oberflächlich behandelt.

    plus ein Kapitel in "The C++ Standard Library: A Tutorial and Reference", dass auch mal mehr in Detail geht, als Default-Stream-Wissen was in dieser Welt kursiert.


  • Mod

    Jodocus schrieb:

    Kann man sich auch per Google aneignen.

    Dann mach mal bitte vor.

    (Ich habe das Buch (noch*) nicht, aber ich weiß, dass mir sehr viel Detailwissen über IOStreams fehlt. Ich war bisher noch nicht in der Lage, meine Neugierde durch Informationen aus dem Internet zu stillen. Auch die bekannten Lehrbücher kommen bei dem Thema ziemlich kurz)

    *: ist ja bald Weihnachten 😉



  • Ich meine auch, dass unser IOStream-Spezialist hier im Forum vieles aus dem Buch hat. Bei Amazon liest man auch nur gut darüber. Das gilt allerdings auch für C++ von A bis Z...



  • SeppJ schrieb:

    Jodocus schrieb:

    Kann man sich auch per Google aneignen.

    Dann mach mal bitte vor.

    Da 🙂 http://lmgtfy.com/?q=libstdc%2B%2B+source

    nicht erst gemeint ...



  • Manchmal kommt mir diese Stream-Geschichte wie eine eigene Sprache vor 🙂



  • SeppJ schrieb:

    Jodocus schrieb:

    Kann man sich auch per Google aneignen.

    Dann mach mal bitte vor.

    (Ich habe das Buch (noch*) nicht, aber ich weiß, dass mir sehr viel Detailwissen über IOStreams fehlt. Ich war bisher noch nicht in der Lage, meine Neugierde durch Informationen aus dem Internet zu stillen. Auch die bekannten Lehrbücher kommen bei dem Thema ziemlich kurz)

    *: ist ja bald Weihnachten 😉

    Was erwartest du? Jeder, der "The C++ Programming Language" einmal durchgelesen und vielleicht die ein oder andere Übung gemacht hat, wird keine Probleme haben, die hintersten Ecken der Standardlibrary mit Manuals zu erkunden.
    Man kann auch einfach mal 'nen guten Debugger zur Hand nehmen und step-by-step durch die I/O-Stream-Funktionen springen, um zu sehen, wie sie funktioniert.

    In dem Buch wird im u.a. das Streampuffer-Konzept näher erläutert (d.h., für Leute, die nicht per Google rausfinden können, was eback(), gptr(), sbumpc(), underflow() etc. tun) und eben gezeigt, wie man eigene macht (also welche virtual-Funktionen man beim Ableiten überladen kann). Aber da gilt das gleiche: ein mal googeln, wie das Interface von std::basic_streambuf<> ausschaut, ein paar Codebeispiele lesen und selber einen schreiben, dabei lernt man das meiste.

    Die andere Geschichte sind Locales, mit denen sich scheinbar viele schwer tun. Die meisten Facetten werden in "The C++ Programming Language" mit Beispielen erklärt (bis auf wenige Ausnahmen wie std::codecvt). Wenn man z.B. wissen will, wie State-dependend Charsets in std::codecvt funktionieren, kann man das per Manual auch schnell rausfinden, Beispiele im Netz gibt es auch genügend. Selbst eine abgeleitete Facet wird im Stroustrup erläutert und durchexerziert, mit Übungen am Ende und Lösungen im Internet.

    Was will man mehr?



  • Die Frage war nicht, ob und wo man sich Informationen zu dem Stream-Krams besorgen kann, sondern ob das Buch was taugt. Und nein, man kann es sich nicht vernünftig mit Google aneignen. Dabei kommen leider viel zu häufig Lösungen zu Stande, die man mit weniger Aufwand effizienter gestalten hätte können, wenn man denn gewusst hätte wie.



  • Jodocus schrieb:

    "The C++ Programming Language"

    Eben war es google, jetzt kommst du mit einem Buch. Wie auch immer...

    Jodocus schrieb:

    Man kann auch einfach mal 'nen guten Debugger zur Hand nehmen und step-by-step durch die I/O-Stream-Funktionen springen, um zu sehen, wie sie funktioniert.

    Ganz schlechte Idee. Dadurch würde ich selbst rein gar nichts lernen und verstehen und dabei verstehe ich ne Menge von C++. Ich würde keinen funktionellen und logischen Zusammenhang wirklich erkennen können. Das große Ganze würde ich so nie und nemma verstehen und erst recht nicht eigene Anwendungsbeispiele schreiben können, die die Streamidee sauber wiedergeben.



  • Tachyon schrieb:

    Die Frage war nicht, ob und wo man sich Informationen zu dem Stream-Krams besorgen kann, sondern ob das Buch was taugt. Und nein, man kann es sich nicht vernünftig mit Google aneignen. Dabei kommen leider viel zu häufig Lösungen zu Stande, die man mit weniger Aufwand effizienter gestalten hätte können, wenn man denn gewusst hätte wie.

    Das Buch taugt auf jeden Fall was, aber es ist IMHO einfach nicht nötig. Und wenn man die Standardlibrary nicht mit einem Manual verstehen kann, hat man vielleicht anderswo Probleme (ich setze hierbei natürlich voraus, dass man kein totaler C++-Anfänger ist). Überzeuge dich doch einfach bei ein paar Auszügen/Essays bei der Autorin selber: http://www.angelikalanger.com/Articles/Topics.html#CPP

    KasF schrieb:

    Eben war es google, jetzt kommst du mit einem Buch. Wie auch immer...

    Ich hätte auch C++ von A bis Z sagen können ( :p ), es geht mir einfach darum, dass man, wenn man die C++-Grundlagen beherrscht, durchaus in der Lage ist, sich andere Sachen selbstständig per Manual aneignen kann, ohne dauernd von didaktisch aufbearbeiteten Texten an die Hand genommen zu werden. Wenn man keine Peilung von der Standardlibrary hat, nützt einem ein Manual wenig. Aber es wird sich wohl kaum ein C++-Anfänger für Locales interessieren. Ich erwähnte das Stroustrup-Buch nur, weil darin wirklich schon eine Menge über Streams und Locales steht.

    KasF schrieb:

    Ganz schlechte Idee. Dadurch würde ich selbst rein gar nichts lernen und verstehen und dabei verstehe ich ne Menge von C++.

    Ein wenig Bescheidenheit steht uns allen gut. IMHO ist der Debugger eine wundervolle Art, Programmabläufe nachvollziehen zu können. Alleine der Callstack kann schon sehr aufschlussreich sein, wenn man sich z.B. dafür interessiert, wann von wem overflow() aufgerufen wird. Was spricht dagegen, von einer funktionierenden Streambuf-Implementierung (i.e. std::basic_filebuf<>) etwas zu lernen?

    KasF schrieb:

    Ich würde keinen funktionellen und logischen Zusammenhang wirklich erkennen können.

    Dann machst du wirklich etwas falsch. Es geht dabei nicht darum, im Assemblercode rumzuschnüffeln oder den Zustand irgendwelcher Flags oder Prozessorregister zu überwachen.



  • Du hast wohl eine andere herangensweise als ich. Natürlich kann ich mir die Implementierung anderer anschauen und verstehen, sowie nachvollziehen. Aber ich bin dann mit Sicherheit meilenweit davon entfernt, die Streamidee sauber und effizient aufeigene Problemstellungen anzuwenden.

    Klar kann ich dann auch was selbst zusammenstricken, aber ob es dann die super duper saubere Lösung ist, bezweifele ich sehr.


Anmelden zum Antworten