On n'imaginerait pas que quelque chose d'aussi basique que l'ouverture d'un fichier à l'aide de la bibliothèque standard C++ pour une application Windows soit délicat... mais il semble que ce soit le cas. Par Unicode ici, je veux dire UTF-8, mais je peux convertir en UTF-16 ou autre, le but est d'obtenir une instance ofstream à partir d'un nom de fichier Unicode. Avant que je ne bricole ma propre solution, y a-t-il une route préférée ici ? En particulier une solution multiplateforme ?
Réponses
Trop de publicités?
Andreas Haferburg
Points
1960
Si vous utilisez Qt mélangé avec std::ifstream
:
return std::wstring(reinterpret_cast<const wchar_t*>(qString.utf16()));
Notez que le std::basic_ifstream
n'accepte normalement pas un const w_char*
mais dans l'implémentation MS de la STL, c'est le cas. . Avec d'autres implémentations, vous appelleriez probablement qString.utf8()
et utiliser le const char*
ctor.
Michael Haephrati
Points
145
Utilisez
wfstream
au lieu de
fstream
y
wofstream
au lieu de
ofstream
et ainsi de suite... Vous pouvez trouver ces informations dans le iosfwd fichier d'en-tête.
- Réponses précédentes
- Plus de réponses
0 votes
C'est un duplicate question. Voyez si l'une des réponses peut vous aider.
0 votes
Pourquoi n'utilisez-vous pas des types de données comme
std::wofstream
? Remarquez le w ¡!