Wie konvertiert wstringstream in char * ?? (Sprache C++)Wie kann ich wstringstream in char * umwandeln?
Ich brauche diese Konvertierung, um die Funktion writeRawData der Bibliothek qdatastream.h zu verwenden.
Vielen Dank !!
Wie konvertiert wstringstream in char * ?? (Sprache C++)Wie kann ich wstringstream in char * umwandeln?
Ich brauche diese Konvertierung, um die Funktion writeRawData der Bibliothek qdatastream.h zu verwenden.
Vielen Dank !!
wstringstream ist ein basic_stringstream, Sie Linie extrahieren könnte, Saibling, Text von ihm Blick auf diese http://www.cplusplus.com/reference/sstream/wstringstream/
und man konnte ein Beispiel von diesem http://www.cplusplus.com/reference/sstream/basic_stringstream/str/
Ok, aber wenn ich ein Sonderzeichen habe (ò, é, ...) habe ich sein verloren und ich will das nicht passieren ... Hast du andere Lösung? Vielen Dank... –
Sie haben retreive wstringstream::str()
zu verwenden, um den Inhalt abzurufen des Stroms. Und dann je nach Bedarf können Sie entweder konvertieren es in einem QString
, so dass die QDataStream für Sie die Zeichenfolge verarbeiten kann oder nur die Bytes des wstring schreiben:
void f(wstringstream &stream, QDataStream &qstream)
{
wstring content = stream.str();
QString str = QString::fromStdWString(content);
qstream << str;
}
void g(wstringstream &stream, QDataStream &qstream)
{
wstring content = stream.str();
qstream.writeRawData(static_cast<const char *>(content.c_str()), content.length() * sizeof(wchar_t));
}
Sie * Gießen wissen Sie *? –
Ja, ich weiß über Casting! –
Dann erhalten Sie die Zeichenfolge. Holen Sie einen Zeiger auf das erste Zeichen in der Zeichenfolge. Und wirf das. –