如果我有这样的代码,并且我首先从流"This"
中将str
存储在streem
中,则
using namespace std;
int main()
{
istringstream streem("This is the content in the stream.");
string str;
streem>>str;
cout<<str; //This will cout "This"
如果再次执行streem>>str
,然后再次执行cout<<str
,则将显示is
。那么这是否意味着"This" does not exist in the istringstream anymore?
file streams
会保留数据,该怎么办?
答案对于不同的流来说是不同的。
stringstream
有一个内存缓冲区和一个指示器,可以记住您在读数上的位置。因此,下一个读取从上一个读取停止的地方开始。
文件流以类似的方式工作,它们记住它们到达文件的哪一点。在这两种情况下,都可以使用seekg
来更改位置(包括重设到开头)。
其他输入流可能没有可搜索的缓冲区,例如cin
。