在调用.str()之前是否可以知道std :: wostringstream的长度?

时间:2013-04-04 08:33:44

标签: c++ c++11 wostringstream

我正在研究 std :: wostringstream 以及如何正确使用它。我想知道是否有任何方法事先知道构造的弦的长度?我尝试在MSDN和http://en.cppreference.com/w/上搜索信息,最后谷歌却找不到我想要的内容。

例如,如果我将 wostringstream 的引用传递给函数,是否有可能该函数知道流是否为空或者如果没有,并且通过调用<而不执行复制有多长时间强>名为.str()

1 个答案:

答案 0 :(得分:3)

您可以使用tellp()成员函数,该函数返回关联的流缓冲区的输出位置指示符。例如:

#include <string>
#include <sstream>
#include <iostream>

int main()
{
    std::wostringstream oss;
    oss << L"Hello" << " World!" << std::endl;
    std::cout << oss.tellp();
}

这是live example