2017-10-25 20 views
1

wstringstreamをchar *に変換する方法(言語C++)wstringstreamをchar *に変換するにはどうすればよいですか?

この変換では、qdatastream.hライブラリのwriteRawData関数を使用する必要があります。

ありがとうございます!

+0

あなたは知っています*鋳造*? –

+0

はい、キャスティングについて知っています! –

+0

その後、文字列を取得します。文字列の最初の文字へのポインタを取得します。それをキャストします。 –

答えて

0

wstringstreamは、あなたが 見えることhttp://www.cplusplus.com/reference/sstream/wstringstream/

でそれから行、文字、テキストを抽出でき、あなたはあなたがコンテンツを取得するためにwstringstream::str()を使用する必要があり、そのhttp://www.cplusplus.com/reference/sstream/basic_stringstream/str/

+0

私は特殊文字(ò、é、...)を持っている場合、私はそれを失ったと私はこれが起こるしたくない...他の解決策はありますか?ありがとう... –

1

から一例を盗んできbasic_stringstreamですストリームの そしてQDataStreamがあなたのために、文字列を扱うか、単にwstringののバイトを書き込むことができるようにあなたの必要性に応じて、あなたはQStringに変換することができ、次のいずれか

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)); 
} 
関連する問題