Wo codiert std::wofstream?
-
Hab mal ne Frage zu std::wofstream.
Wenn ich z.B. folgenden Code hab:int main() { std::wofstream wos("text.txt"); std::wstring wstr = "test"; wos << wstr << std::endl; return 0; }wie wird der Text dann codiert? Ich kann die test.txt mit ifstream und wifstream wieder öffnen, und beide streams geben das gleiche aus. Deswegen versteh ich das Prinzip dahinter nicht ganz.
-
Versuch das gleiche doch Mal mit Umlauten.
-
Erstmal sorry für den falschen Titel, dass sollte natürlich wie und nicht wo heißen

Ich habs jetzt mal mit char und ofstream ausprobiert. Und alle Umlaute werden richtig in die Datei geschrieben. Aber ist die Konsole nicht fähig, Umlaute auszugeben? Weil statt den Umlauten sehe ich immer einen dicken Unterstrich, auch wenn ich wcout benutze.
-
Das ist glaube ich ein Windows-Problem. Beschäftige dich mal mit
locales.
-
std::wofstream wos("text.txt"); std::wstring wstr = "test";Das wird kompiliert?

Zur Konsolenausgabe:
#include <locale> //... std::locale::global(std::locale("german"));Dann muss man noch in der Windows-Konsole eine Unicode-fähige Schriftart auswählen (
Lucida) und ich meine da wäre bei Windows noch etwas mitSetConsoleOutputCP()gewesen...
-
Roger Wilco schrieb:
std::wofstream wos("text.txt"); std::wstring wstr = "test";Das wird kompiliert?

Dann kommt eben noch ein L vor "test"

Danke, habs mit den locales jetzt hinbekommen