Ich gebe ein Array von Zeichen ohne Vorzeichen in C ++ mit ofstream fout("filename");
aus
aber dazwischen entsteht ein falscher Charakter. Dies ist der Teil des Codes, der das Problem verursacht:
und dies ist die Definition des Arrays:
%Vor% In der Ausgabedatei bekomme ich ein falsches 0x0D
zwischen 0x09
und 0x0A
. Ich habe das Array im Debugging-Modus überprüft, bevor es gedruckt wird und es wird nicht geändert. Bitte sagen Sie mir, was Sie von diesem Problem halten.
Ihr Stream wird im Textmodus geöffnet, und da 0x0A
das Zeilenvorschubzeichen (LF) ist, wird es von Ihrem Stream in 0x0D
0x0A
, d. h. CR / LF, konvertiert.
Öffnen Sie Ihren Stream im Binärmodus:
%Vor%Dann sollten Zeilenende-Conversions nicht durchgeführt werden.
Dies wird normalerweise für eine gute Idee gehalten, da Streams bizarr w.r.t. Spülen im Textmodus.