Frage

Ich schreibe Binärdatei mit fstream und beim Öffnen der Datei binäres Flag verwendet wird.

Ich brauchte einen Text als binäres zu schreiben, die eine einfache Schreib den Trick. Das Problem ist, dass ich auch (wie gezeigt in hexadezimal) schreiben muß 0. Der Wert, wenn in binärem Notizblock geöffnet Null gezeigt, aber wenn versucht, dies der Wert zu schreiben, nicht Null es Wert von 30 in hexadezimal war.

Wie Sie schreiben spezifische Daten wie das?

War es hilfreich?

Lösung

Beim Öffnen der fstream die ios::binary Flag verwenden binäre Ausgabe zu spezifizieren. Weitere Informationen finden Sie hier .

Wie zum Schreiben 0, wenn Sie 30 in Hexadezimal sehen Sie schreiben den Charakter ‚0‘, nicht die binäre Zahl 0. Um dies zu tun mit einem fstream Sie etwas tun können, wie:

my_fstream << 0;

Beachten Sie die Binärdaten 0 keine Textdarstellung hat, so dass Sie nicht in der Lage sein, um es in Editor zu lesen, wie Sie die Zeichen zu lesen, wären in der Lage ‚0‘.

Andere Tipps

Sie wahrscheinlich nur brauchen so etwas wie dies, zu verbessern, wie Sie sehen, passen:

ofstream file("output.bin", ios::out | ios::binary);
if (file.good())
{
    char buf[1] = {0};
    file.write(buf, sizeof(buf));
    file.close();
}

Links zu anspruchsvollere Lösungen und Dokumentation wurden bereits veröffentlicht.

Werfen Sie einen Blick auf diese: http://www.cplusplus.com/forum/general/11272/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top