Hexadezimale dargestellter Character aus Datei in Character Variable einlesen
-
OK. Ich hab den Wert jetzt soweit aus der Datei eingelesen. Ich glaube aber dass bei der Übergabe des Int-Wertes an die char-Variable etwas nicht funktioniert. Der int-Wert ist bei mir der hex-Wert des Characters.
Ich hab schon versucht das mit char(temp2) zu casten, aber auch das funktioniert nicht. Wie mache ich dem Compiler also klar, dass die int-Werte die Hex-Darstellung des Characters sind???Gruß,
/Hendrik
-
Was meinst du denn mit "funktioniert nicht"? Kannst du das bitte etwas präzisieren?
-
würde es eher mit
(char) temp2;beim cast versuchen, nicht mit
char(temp2)
-
Vorden schrieb:
würde es eher mit
(char) temp2;beim cast versuchen, nicht mit
char(temp2)Wieso das? Die Casts sind technisch gleichwertig - und in C++ ist der zweite häufiger anzutreffen.
(persönliche Frage: Du bist nicht zufällig mit net verwandt?)
-
Also wenn ich den Int Wert in einen Character schreibe und anschliessend in eine Datei ausgeben lasse, dann stimmen diese character nicht mit denen überein die ich da eigentlich erwarten würde.
Das Ascii Zeichen 0x38 sollte z.B. einem Punkt entsprechen. In der Hex-Datei erscheint aber ein 0x26, was einem & und damit der dezimalen Darstellung des Characters entspricht.
Ich muss also irgendwie noch den int10 Wert in einen int16 Wert umwandeln. Dann sollte es funzen...
-
Dann solltest du bei der Ausgabe auch angeben, daß du Hex-Werte ausgeben willst (da reicht ein 'outfile<<hex;' ganz am Anfang, um die nötigen Flags zu setzen)
-
Hab ich probiert. Das geht auch nicht.
Habmir jetzt überlegt, dass ich das ganze erst mit
sprintf(&FileHeader,"%x",temp2[0]);
in eine char Variable schreibe und das dann mit
target.put(FileHeader);
in die Ausgabedatei schreibe die target heißt. Aber da kommen auch nicht die Werte raus die ich mir erhofft habe.
-
Ich frag mich warum das mit dem Hex-Flag setzen nicht hinhaut....
-
Zeig doch mal etwas zusammenhängender, was du eigentlich machst (und was für einen Sinn du daran siehst, char-Werte im Hex-Format zu speichern).
-
würde es eher mit
(char) temp2; // C-Style-Castbeim cast versuchen, nicht mit
char(temp2); // Function-CastBeides nicht der Hit in C++.
static_-, oder für harte Fälle reinterpret_cast.