如何将wstringstream转换为char *?

时间:2017-10-25 14:26:46

标签: qt c++11 stringstream wstring

如何将wstringstream转换为char * ?? (语言c ++)

我需要这个转换来使用qdatastream.h库的函数writeRawData。

非常感谢!!

2 个答案:

答案 0 :(得分:1)

您必须使用wstringstream::str()来检索流的内容。 然后根据您的需要,您可以将其转换为QString,以便QDataStream可以为您处理字符串或只写wstring的字节:

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

答案 1 :(得分:0)

wstringstream是一个basic_stringstream,你可以从中提取line,char,text 看看http://www.cplusplus.com/reference/sstream/wstringstream/

您可以从http://www.cplusplus.com/reference/sstream/basic_stringstream/str/

中检索一个示例