我在两个循环中有一个流串,它正在燃烧我的 RAM。那么如何正确清除 Steam 串的缓冲区呢?就是这样简化:

stringstream ss (stringstream::in | stringstream::out);

for()
{
    for()
    {
        val = 2;
        ss << 2;
        mystring = ss.str();
        // my stuff
    }
    // Clear the buffer here
}

它写了 2 然后是 22 然后是 222 ......我试过 .clear() 或 .flush() 但事实并非如此。那我怎么做呢?

最佳答案

显而易见的解决方案是每次使用新的 stringstream,例如:

for (...) {
    std::stringstream ss;
    for (...) {
        //  ...
    }
}

这就是 stringstream 被设计用来使用的方式。 (还有:你
真的想要一个 stringstream ,还是只是一个 ostringstream ?)

关于c++ - 如何清除流字符串的缓冲区?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6370301/

10-13 00:06