C++ stringstream没有';在清除数据后,不接受任何数据

C++ stringstream没有';在清除数据后,不接受任何数据,c++,stringstream,C++,Stringstream,我试图从用户那里读取一个以“()”结尾的数据块,并将其发送到stringstream,对其执行一些操作(为了方便起见,现在让我们说我只想打印这些数据),然后再次接受一个新的数据块,通过输入EOF完成此操作, 这是密码 while(cin >> temp) { if(temp != "()") { strem << temp + " "; } else {

我试图从用户那里读取一个以“()”结尾的数据块,并将其发送到stringstream,对其执行一些操作(为了方便起见,现在让我们说我只想打印这些数据),然后再次接受一个新的数据块,通过输入EOF完成此操作, 这是密码

while(cin >> temp)
    {
        if(temp != "()")
        {
            strem << temp + " ";
        }
        else
        {
            while(strem >> str)
                cout << str << " ";
            cout << "\n";
            strem.str("");
        }

    }
要查看strem的内容,要总结一下,需要打印第一个块,但之后什么也不打印。知道发生了什么事吗

这样做

while(strem >> str)
几乎可以肯定,流上设置了一个标志。所以,在尝试再次写入流之前,需要清除流状态。 你可以用一个

strem.clear()
这样做

while(strem >> str)
几乎可以肯定,流上设置了一个标志。所以,在尝试再次写入流之前,需要清除流状态。 你可以用一个

strem.clear()

有一个副本的投票率更高,但这一个更清晰、更直截了当。有一个副本的投票率更高,但这一个更清晰、更直截了当。