ストリームを含む C++ コースのプログラミングの課題があり、一部の関数がそのように機能する理由をよりよく理解しようとしています。
テキストの後に空白を含む istringstream から入力を読み取っています。出力で最後の単語が繰り返されるのはなぜですか?
istringstream is;
string inputstring = "The cliched statement regarding the big brown dog and foobar or something ";
string outputstring;
is.str(inputstring);
while (is.good())
{
is >> outputstring;
cout << outputstring << endl;
}
そのため、good フラグをループする代わりに、while 条件として抽出を行っています。
while (is >> outputstring)
...
これはうまく機能し、最後の単語を繰り返しません。読み取りが完了したときに while ループから抜け出すこのステートメントについてはどうですか? 抽出は同じストリームへの参照を返しますが、フラグなどをチェックしますか?
すべてのストリームを含めることができる単一のヘッダーはありますか?