Je travaille avec des caractères Unicode/Wide et j'essaye de créer une méthode toString (Java ::toString equiv). Ostream va-t-il gérer les caractères larges, si oui, y a-t-il un moyen d'avertir le consommateur du flux qu'il est unicode en sortant?Ecriture de caractères Unicode sur un OStream
5
A
Répondre
3
Ni le ostream
ni le reste de C++ ne connaissent rien à propos d'Unicode. Habituellement, vous écrivez une conversion de chaîne en C++ comme suit:
template<typename Char, typename Traits>
std::basic_ostream<Char, Traits>&
operator<<(std::basic_ostream<Char, Traits>& stream, const YourType& object) {
return stream << object.a << object.b; // or whatever
}
Que vous obtenez quelque chose Unicode semblable est à la mise en œuvre. Les flux en C++ ne sont jamais des flux de texte au sens de Java, et les chaînes de C++ ne sont pas des chaînes au sens de Java. Si vous voulez une vraie chaîne Unicode, vous pouvez jeter un oeil à la ICU library.