C++: Почему компилятор читает из istringstream даже после того, как он пуст?

Я изучал getline и istringstream и застрял в этом коде, выводящем "Hello World World", в то время как я ожидал просто "Hello World". Может кто-нибудь сказать мне, почему это печатает это и как это можно исправить? Заранее спасибо за помощь!

#include <iostream>
#include <sstream>

using namespace std;

int main()
{
string a="Hello world",b;
istringstream x(a);
while(x!=nullptr)
{
    cout<<x;
    getline(x,b,' ');
cout << b<< " ";
}
return 0;
}

0 ответов

Другие вопросы по тегам