fstream: Mehrfachdurchläufe auf eine Datei? 2 Fragen!



  • Naja, mir gings ja erst einmal darum, so was überhaupt zu machen, da ich noch rel. neu in C++ bin - und außerdem finde ich es eine nette Spielerei, wie sich der Text verändert fasziniert mich halt jetzt schon. d:

    Was meinst du mit RAII?



  • Shortyoo schrieb:

    Naja, mir gings ja erst einmal darum, so was überhaupt zu machen, da ich noch rel. neu in C++ bin - und außerdem finde ich es eine nette Spielerei, wie sich der Text verändert fasziniert mich halt jetzt schon. d:

    Das finde ich gut. 👍

    Shortyoo schrieb:

    Was meinst du mit RAII?

    Statt open/close verwendest Du Konstruktor/Destruktor.

    Gegebenenfalls wird dazu ein zu destruierendes Objekt eigens in einen eigenen Block gepackt, damit meine ich, es wird eigens ein Block mit { und } drumgebaut.
    Ist aber allermeistens eh hinfällig, weil man die Gesamtaufgabe ja in kleinere Funktionen (ein Zweck -> eine Funktion) zerlegt und genau da ja automatisch der Block ist, mithin temporäre Objekte, die nur zu einem Zwecke kurz da sind, nur innerhalb der einen Zweckfunktion leben.



  • Ich sehe bei Dir exit und open/close.
    exit ist in C++ eine Todsünde (ehrlich!).
    open/close ist als veraltet anzusehen, sinnlos umständlich, fehleranfällig.

    Haste etwa ein sehr schlechtes C++-Lehrbuch gerade in Händen? Vielleicht eins von Jürgen Wolf? Welches haste gerade in Deinen Fängen?



  • Naja ich lerne C++ derzeitig über ein Buch, hab schon kurz was über Kon- und Destruktoren gelesen, aber ich verstehe den Sinn dabei nicht. :o

    Warum klappt das denn eigtl. mit dem Mehrfachaustausch nicht?



  • Shortyoo schrieb:

    Naja ich lerne C++ derzeitig über ein Buch, hab schon kurz was über Kon- und Destruktoren gelesen, aber ich verstehe den Sinn dabei nicht. :o

    Googele mal nach RAII. Ok, hartes Brot, sorry.

    Halte uns auf dem Laufenden über deinen neuen Code-Versionen. Erstmal ist RAII und funktionale Zerlegung das Wichtigste.

    Wenn es sich Dir nicht erschließt, wird SeppJ eine lehrreiche Metapher finden, die alles klar macht. Eigentlich müßte man seine Metaphern in sammeln und ein Buch drüber rausgeben.

    Shortyoo schrieb:

    Warum klappt das denn eigtl. mit dem Mehrfachaustausch nicht?

    Sorry, ich mag das nicht durchdenken, ich glaube, daß Du diesen Pfad schnell verlassen solltest.

    Wenn Du "Bitte, bitte" postest, kläre ich das auch. Aber wäre für und beide verschwendete Zeit. Für mich ein paar Minuten, für Dich ein paar Wochen, weil Du Dich in einen Stil vertiefen würdest, der nicht oberschlau ist, fürchte ich.

    ps: Welches Buch? Brauche ich für meine persönliche Statistik, welche Bücher (nicht) taugen.



  • Der C++ Programmierer derzeit, hatte davor 2 andere
    1. C++ Programmierung für Anfänger (Florian Wollenschein)
    2. C++ OOP von Anfang an (OOP ausgeschrieben) (Helmut Erlenkötter)

    Zum 'Der C++ Programmierer' ich finde es nützlicher als die anderen beiden, hier wurde z.B. erklärt warum man z.B. den Iostream braucht, in den anderen beiden Büchern wars so nach dem Motto "Weil isso", so schlecht ist es gar nicht, hat auch Hintergrundinformationen - nun gut, bin noch nicht weit, aber derweil besser als die anderen, bin eigtl. nur auf die Aufgabe gekommen weil dort kurz darauf eingegangen wurde wie man bspw. Dateien kopiert (fstream Zeugs), hab mir den Austausch dann selbst zur Aufgabe gemacht, also sooo schlecht ist es dann doch nicht, Konstruktor und Destruktor kommen jetzt auch bald. 🙂

    Naja, ich vertrau dir mal - im Sinne von das es unnütz wäre - trotzdem danke ich dir schon mal für deine Hilfe. 🙂

    Grüße, Shortyoo



  • Mir RAII wäre das sogar trivial.

    Das ist sehr unspezifisch. In C ist es wahrscheinlich auch super trivial.

    volkard schrieb:

    exit ist in C++ eine Todsünde (ehrlich!).

    Ja, weil hier ein einfaches return ausreicht

    open/close ist als veraltet anzusehen, sinnlos umständlich, fehleranfällig.

    Veraltet? Nein, weil die Unterstuetzung fuer Dataisysteme in der Standardbibliothek noch fehlt. Sinnlos? Nein. Umstaendlich? Nein, weil eine Funktion mit 1 bis 2 Parametern. Fehleranfaellig? Nein, weil Funktion mit 1 bis 2 Parametern. ... laeuft auf Errorhandling mittels Returnvalues vs. Exceptions hinaus. Nein Danke!



  • knivil schrieb:

    Mir RAII wäre das sogar trivial.

    Das ist sehr unspezifisch. In C ist es wahrscheinlich auch super trivial.

    volkard schrieb:

    exit ist in C++ eine Todsünde (ehrlich!).

    Ja, weil hier ein einfaches return ausreicht

    Herrje, weil exit keine Destruktoren mehr aufruft, die Ressorchen werden nicht freigegeben, halbangefangene Jobs gammeln rum.

    open/close ist als veraltet anzusehen, sinnlos umständlich, fehleranfällig.

    Veraltet? Nein, weil die Unterstuetzung fuer Dataisysteme in der Standardbibliothek noch fehlt. Sinnlos? Nein. Umstaendlich? Nein, weil eine Funktion mit 1 bis 2 Parametern. Fehleranfaellig? Nein, weil Funktion mit 1 bis 2 Parametern. ... laeuft auf Errorhandling mittels Returnvalues vs. Exceptions hinaus. Nein Danke![/quote]
    [quote]
    Siehe obere Antwort. Mir scheint, Du kennst C++ gar nicht so supi.



  • Herrje, mir scheint so als ob du zuviel ueber Koennen, Erfahrung oder Wissen aus einem Satz ableitest, besonders wenn die Antwort nicht deinen Erwartungen entspricht, oder es mehrere Gruende gibt und nur einer genannt wird, oder ... . Wird return benutzt, so ist main im Vergleich zu anderen Funktionen nichts besonderes mehr. Das war mein Grund fuer diese Antwort. Aber bitte, nimm es als Schild, um nicht veraltet, ueberholt, sinnlos, fehlerhaft und kompliziert zu rechtfertigen.



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ (auch C++0x und C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • @knivil
    Wenn du weniger rumnörgeln würdest, dann würden andere Leute vielleicht auch weniger zurücknörgeln?


Anmelden zum Antworten