Unterschied zwischen std::fstream und std::wfstream



  • Hoi, hoi 😉

    Also wenn ich mit einem std::fstream-Objekt eine ASCII-codierte Datei auslese, sollte es doch keine Probleme geben, oder ?
    Was ist aber, wenn ich mit einem std::fstream-Objekt eine für UNICODE ausgelegt Datei einlese ?
    Bzw. wenn ich eine ANSI-Datei mit einem std::wfstream-Objekt auslese, sollte da doch auch Mist rauskommen, oder ?

    Hoffe ihr versteht was ich meine ... Gibts da irgend ne Lösung ?

    Grüße und Frohe Weihnachten :xmas1:



  • Du brauchst eine codecvt Implementierung, die entsprechende Kodierungen kennt. Die Standard-Implementierungen verstehen nur ASCII.
    http://www.kharchi.de/codecvt.png

    Und was verstehst du unter Unicode? Unicode ist eine Oberbegriff, bei UTF-16 und UTF-8 gibts grundlegende Unterschiede. Wenn UTF-8 nur ASCII-Zeichen enthält, wirst du keinen Mist bekommen, egal ob du fstream oder wfstream nimmst

    Dinkumware bietet jedenfalls eine Komplettlösung für ca. 20 verschiedene Zeichenkode-Standards an. Oder du machst eine eigene Implementierung von std::codecvt_base.



  • hi danke erstmal für deine Antwort 😉 .

    Artchi schrieb:

    Die Standard-Implementierungen verstehen nur ASCII.

    Und warum hat man dann einaml für char und einmal für wchar_t instantiiert ?


Anmelden zum Antworten