ストリームの動作について質問があります。次の例を参照してください。私が期待していたのは、文字列に 5 文字しかないため、10 文字を読み取ろうとするとストリームの読み取りが停止することです。代わりに、出力は「hellooooo」です...最後の文字が繰り返されます。私の質問は 2 つあります。まず、なぜですか。第二に、最後の文字を繰り返さないようにストリームを動作させる方法はありますか?
#include <sstream>
#include <iostream>
using namespace std;
int main(void) {
char c;
string msg("hello");
istringstream iss(msg);
unsigned int i = 0;
while (i < 10) {
iss >> c;
cout << c;
i++;
}
cout << endl;
return 0;
}