Ich arbeite mit Unicode/Wide-Zeichen und ich versuche, eine toString-Methode (Java ::toString equiv) zu erstellen. Wird ostream mit breiten Zeichen umgehen, wenn es also eine Möglichkeit gibt, den Verbraucher vor dem Stream zu warnen, dass Unicode daraus hervorgeht?Schreiben von Unicode-Zeichen in einen OStream
5
A
Antwort
3
Weder ostream
noch der Rest von C++ wissen etwas über Unicode. Normalerweise schreiben Sie eine Zeichenfolge Umwandlung in C++ wie folgt:
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
}
Ob Sie etwas Unicode-like erhalten, ist bis zur Umsetzung. Streams in C++ sind niemals Text-Streams im Sinne von Java und C++ - Strings sind keine Strings im Sinne von Java. Wenn Sie eine echte Unicode-Zeichenfolge wünschen, sollten Sie sich die ICU library ansehen.