【发布时间】:2016-09-27 13:37:21
【问题描述】:
我正在尝试使用 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嘿嘿嘿
嗨嗨嗨
我叫xyz
女孩吃香蕉
我得到:
输出:
嘿嘿嘿
我嗨嗨
y 名字是 xyz
我吃香蕉
谁能建议我该怎么做?为什么会出现这个错误?
【问题讨论】:
-
请提供minimal reproducible example。
arr到底是什么? -
是的,非常感谢您指出这一点。
-
在循环之前移动
cin.ignore()。也试着弄清楚它实际上做了什么,
标签: c++ istringstream