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