Binäre Ein-/Ausgabe



  • Hallo, ich schau mir gerade das Thema "Binäre Ein-/Ausgabe " im Buch "Der C++ Programmierer" an und irgendwie versteh ich das nicht so ganz.
    Hier mal der Beispielcode aus dem Buch:

    #include <cstdlib>
    #include <fstream>
    #include <iostream>

    using namespace std;

    int main() {
    ofstream ziel("double.txt", ios::binary);
    if (!ziel) {
    cerr << "Datei kann nicht geoeffnet werden!\n";
    exit(-1);
    }

    //Bis hier versteh ich es, aber ab der for-Schleife hab ich keinen Plan was das alles soll?

    double d = 1.0;
    for (int i = 0; i < 20; ++i, d *= 1.1) // Kommaoperator (s.Text)
    ziel.write(reinterpret_cast<const char *>(&d), sizeof(d));
    } // {\tt ziel.close()} wird vom Destruktor durchgeführt

    So, nun meine Frage(n): also für was genau brauche ich einen Zeiger, der in den Datentyp char gewandelt wird? Wie agiert der Adressoperator (&) in diesem Beispiel genau? Und wofür brauche ich dieses d bzw. sizeof(d)? Wird zwar alles im Buch erklärt aber ich tschecks einfach nicht 😞
    Bin gerade echt ratlos und hoffe, dass mir emand helfen kann!
    🙄 😮



  • maxkla schrieb:

    also für was genau brauche ich einen Zeiger, der in den Datentyp char gewandelt wird?

    write will einen char*

    maxkla schrieb:

    Wie agiert der Adressoperator (&) in diesem Beispiel genau?

    so wie immer, was meinst du genau?

    maxkla schrieb:

    Und wofür brauche ich dieses d

    das willst/sollst du ausgeben

    maxkla schrieb:

    bzw. sizeof(d)?

    write will wissen, wie viele Bytes zu schreiben sind. Das liefert sizeof



  • Ok, also write muss wissen wie viel auszugeben ist? Und d ist quasi das, was ausgegeben wird. Also 20 Zahlen?



  • maxkla schrieb:

    Ok, also write muss wissen wie viel auszugeben ist?

    Ja

    maxkla schrieb:

    Und d ist quasi das, was ausgegeben wird. Also 20 Zahlen?

    Ja, das sollte doch jetzt aber klar im Buch stehen.


Anmelden zum Antworten