如果我从C ++中的流中提取某些内容,该流是否不再包含我所提取的内容?那文件流呢?

问题描述 投票:0回答:1

如果我有这样的代码,并且我首先从流"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会保留数据,该怎么办?

c++ stream
1个回答
0
投票

答案对于不同的流来说是不同的。

stringstream有一个内存缓冲区和一个指示器,可以记住您在读数上的位置。因此,下一个读取从上一个读取停止的地方开始。

文件流以类似的方式工作,它们记住它们到达文件的哪一点。在这两种情况下,都可以使用seekg来更改位置(包括重设到开头)。

其他输入流可能没有可搜索的缓冲区,例如cin

© www.soinside.com 2019 - 2024. All rights reserved.