我正在尝试使用std::istringstream
访问字符串中的不同单词,并且我还在使用多个测试用例进行操作。
int t;
cin>>t;
while(t--)
{
string arr;
cin.ignore();
getline(cin,arr);
istringstream iss(arr);
string word;
while(iss>>word)
{
cout<<word;
}
}
对于第一个测试用例,一切都很完美(即输出正确的单词)。但是对于每个后续的测试用例,第一个单词的第一个字母会被留下来。
例如:
输入: 4 hey there hey hi hi hi my name is xyz girl eats banana
我得到的输出为:
输出: hey there hey i hi hi y name is xyz irl eats banana
请问有人能提供建议如何解决问题,以及为什么会出现这个错误?
arr
实际上是什么? - πάντα ῥεῖcin.ignore()
移至循环之前。同时尝试弄清它实际的作用。 - n. m.