vector<string> svec;
string str;
while (cin >> str&&!cin.eof())
{
svec.push_back(str);
}
for (auto c:svec)
{
cout << c << " ";
}
如果我輸入tt tt tt
,則輸出爲tt tt tt
。 但是,如果我什麼都沒輸入,我輸入Ctrl + Z(windows + vs2013)會崩潰。 所以我嘗試修復它。如果我輸入「Ctrl + Z」,它會崩潰,如何修復它?
while (!cin.eof())
{
cin >> str;
svec.push_back(str);
}
現在,如果我輸入什麼,我鍵入按Ctrl +ž不會崩潰。 但是,如果我輸入tt tt tt
,輸出是tt tt tt tt
。
現在我不知道如何解決它。請幫幫我 。
做您使用調試器來查看它崩潰的位置?也使用stringstream而不是'std :: cin'可能是一個好主意,你可以用EOF填充stringstream。另見http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong – holgac 2015-03-03 07:57:07
'&&!cin.eof()'是多餘的。 'operator >>'將返回流對象,當它到達EOF時,流對象的計算結果爲'false'。 – 2015-03-03 08:21:17