关于istringstream用法的一个坑

当istringstream到达输入流的末尾的时候,会发生什么?

看下面这段代码

#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main()
{
    string data = "1 2 3 ";
    istringstream in(data);
    string  part;
    for (int i = 0; i < 5; i++)
    {

        cout << "in>>part: " << (in >> part) << endl;
        cout << part << endl;
    }
    return 0;
}

结果

in>>part: 0x7fff296452b8
1
in>>part: 0x7fff296452b8
2
in>>part: 0x7fff296452b8
3
in>>part: 0
3
in>>part: 0
3

1.

cin>>part变为0

2.

cin已经关闭,part后续没有被赋值

发布了48 篇原创文章 · 获赞 4 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/m0_37313888/article/details/88431431
今日推荐