我對流行爲有疑問,請參閱以下示例。我期待的是,因爲字符串中只有5個字符,並且流讀取會卡住,因爲我正在讀取10個字符。相反,輸出是「hellooooo」......最後一個字符重複。 我的問題有兩個方面:第一,爲什麼?其次,是否有反應讓溪流像最後一個字符不再重複一樣?當從istringstream讀取時出現意外的行爲
#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;
}
因爲你,當你到達流的末尾不停止讀取數據。在while()循環中檢查輸入的結尾 –
@CaptainObvlious,乍一看我以爲你的名字是Captain Obvious,對於那個評論來說這是完美的。 –
@MarkRansom,我仍然這樣做,現在我已經看到了這個名字,就像一百次。 – chris