3

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

例如,如果我将wostringstream的引用传递给一个函数,该函数是否可以通过调用.str()知道流是否为空,以及在不进行复制的情况下需要多长时间?

4

1 回答 1

3

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

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

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

这是一个活生生的例子

于 2013-04-04T08:59:18.637 回答