wostream --> Textdatei: erstes Zeichen wird als ASCII-Code interpretiert
-
Seid gegrüßt!
Ich habe mal wieder ein Problem und nach vielen Suchen imme rnoch keine Lösung gefunden.
Ich nutze std::wostream um in eine txt-Datei zu schreiben.
Nun hole ich mir die aktuelle Zeit und gebe diese zu Beginn jeder Zeile aus. Die einzelnen Werte (Tag, Monat, Jahr, Stunde,...) sind vom Typ unsigned short (WORD).
Nun habe ich den Effekt, dass immer der erste Wert als ASCII-Code interpretiert wird:
std:wostream datei; // Datei öffnen etc... unsigned short zahl = 27; datei << zahl << zahl << endl; zahl = 0; datei << zahl << zahl << endl; zahl = 9; datei << zahl << zahl << endl;Ausgabe:
ESC27 NUL0 9 (erstes Zeichen ist ein TAB/Zeilenvorschub)Wenn ich den ersten Wert nach (int) caste gehts, aber das ist eine bescheidene Lösung. (Texteditoren, die ich benutze: MS Notepad und Notepad++)
Woran liegt es?
-
Hiermit liefere ich das unterschlagende 'f' bei wofstream nach...

-
Jetzt langsam dämmert es...
unsigned short == wchar_t
wofstream interpretiert die Zahl also als ein UNICODE-Zeichen.
Nur warum nur beim ersten Wert und den folgenden nicht mehr?