char/string in binärdatei schreiben/lesen
-
hallo,
ich muss chars und strings in eine datei schreiben jedoch muss dies in binärer form geschehen.
zb:
char a [3]= "hiii"
string i = "lol"0100.. usw soll dann in der datei drin stehen.
und aus dieser dann wieder herauslesen
gibts da vlt einen befehl in c++ zum konvertieren?
hab nix gefunden!
vlt kennt ihr ja nen trick oder nen befehl!!?
danke
-
Also willst du binäres schreiben, oder nur, dass dein Text dann in binärer Form als Text gespeichert wird?
Ersteres kannst du ganz einfach beim erzeugen des streams regeln. Um letzteres zu erreichen wirst du dich wohl selbst um eine Konvertierung bemühen müssen.
-
ja ich habe diese 2 wörter und diese müssen in eine datei in binärer form reingeschrieben werden.
und dann ansschließend muss ich aus dieser datei wieder herauslesen und umkonvertieren damit ich wieder mein altes wort habe
hiii -> datei (=10101...) -> hiii
wär für jede erklärung bzw jeden link dankbar
-
bnur schrieb:
ja ich habe diese 2 wörter und diese müssen in eine datei in binärer form reingeschrieben werden.
und dann ansschließend muss ich aus dieser datei wieder herauslesen und umkonvertieren damit ich wieder mein altes wort habe
hiii -> datei (=10101...) -> hiii
wär für jede erklärung bzw jeden link dankbar
Hier ein Beispiel, das macht was Du willst.
#include <fstream> #include <string> using namespace std; int main() { ofstream wrt("c:/TestFile", ios::binary); // Binaerdatei wird erstellt und geoeffnet. char a1[7] = "Hallo "; string i = "Welt!"; wrt.write(a1, (streamsize)strlen(a1)+1); wrt.write(i.c_str(), (streamsize)i.size()+1); // Array a und string i wurden als C-Strings einschliesslich // der abschliessenden Null(en) in die Binaerdatei geschrieben. wrt.close(); ifstream rd("c:/TestFile", ios::binary | ios::ate); // TestFile wird als Binaerdatei geöffnet. streamsize len = rd.tellg(); char* buf = new char[len]; // Puffer zum Einlesen der Datei rd.seekg(ios::beg, 0); rd.read(buf, len); // Datei in Puffer lesen char a2[7]; strcpy(a2, buf); string i2 = buf+strlen(buf)+1; delete[] buf; }
Das Hintergrundwissen, musst Du Dir selbst erarbeiten.
MfG
-
http://de.wikipedia.org/wiki/Dualsystem
Und den Operator % wird dich zum Ziel bringen.
Wie du dann aber das Binäre wieder in das Dezimalsystem bzw. in einen Buchstaben machst, dass liegt an dir, denn es gibt verschiedene Arten.
-
Hmm, alle Dateien sind binaer, es kommt nur darauf an, wie du sie interpretierst.