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ührtSo, 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.