最後の単語に達した後、空白やヌル文字、ガベージ値などを出力しない理由を理解できません。なぜ文字列を終えた後にも何の影響もありません。stringstreamの奇妙な動作ですか?
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
stringstream ss("I am going to goa for"); // Used for breaking words
string word; // To store individual words
while (ss >> word)
cout<<word<<"\n";
ss >> word;
cout<<word<<endl;
ss >> word;
cout<<word<<endl;
ss >> word;
cout<<word<<endl;
}
はOUTPUT:あなたは何のエラーをチェックしないようにif(!ss.fail())
を追加する必要があり
I
am
going
to
goa
for
for
for
for
ストリームにエラーフラグが設定されています(そのため、whileループは終了しています)。 –