2017-10-25 4 views
1

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 !!

+0

Sie * Gießen wissen Sie *? –

+0

Ja, ich weiß über Casting! –

+0

Dann erhalten Sie die Zeichenfolge. Holen Sie einen Zeiger auf das erste Zeichen in der Zeichenfolge. Und wirf das. –

Antwort

1

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)); 
} 
Verwandte Themen