Avatar ·

std::wstring vs std::string: Wann Unicode und wann ASCII in C++ verwenden?

Hallo zusammen! Ich bin ein Anfänger in C++ und bin ständig verwirrt über den Unterschied zwischen std::wstring und std::string. Ich habe gelesen, dass std::string für "normale" Strings ist und std::wstring für Unicode. Aber in der Praxis habe ich viele Probleme. Hier ein Beispiel: Ich schreibe ein Programm, das Dateinamen aus einem Ordner liest. Einige Dateien enthalten Kyrillisch, z.B. "отчет.docx". Ich verwende std::string: ```cpp std::string filename = "отчет.docx"; std::ifstream file(filename); ``` Und die Datei wird nicht geöffnet! Wenn ich jedoch std::wstring und wifstream verwende, funktioniert alles: ```cpp std::wstring filename = L"отчет.docx"; std::wifstream file(filename); ``` Aber dann treten neue Probleme auf: Ich kann wstring nicht an Funktionen übergeben, die std::string erwarten (z.B. in alten Bibliotheken), und bei der Ausgabe in der Konsole treten Probleme auf.