清除后无法从字符串流中提取

时间:2018-04-01 00:48:44

标签: c++11 stringstream

我想提取" World"从stringstreamstring strB,但字符串strB保持为空。关于如何解决这个问题以及为什么会发生这种情况的任何建议?

int main()
{
        std::string strA;
        std::string strB;

        std::stringstream parser("Hello");
        parser >> strA;
        std::cout << strA;

        parser.clear();
        parser << "World";
        parser >> strB;
        std::cout << strB; // Why cant i extract from parser again ? ? Why is strB empty ?     
}

1 个答案:

答案 0 :(得分:1)

parser.clear()之外,您必须parser.str("")清除缓冲区(而clear()重置状态标志,但不重置数据内容。)