我正在尝试通过使用stringstream转换用户给定的字符串来向矢量添加int值。用户提供如下数据:1,5,6,7,4所以我永远不会知道将会有多少int。
现在我只收到第一个输入的数字。其余的被忽略了。 这就是我想要的:
stringstream ss;
int tmpInt;
string data;
cout << "Enter data: (1,2,3,4 etc.)";
getline(cin, data);
ss.str(data);
while(ss >> tmpInt)
{
myList.addValue(tmpInt);
}
答案 0 :(得分:3)
您需要确保ignore
逗号:
while(ss >> tmpInt)
{
myList.addValue(tmpInt);
ss.ignore();
}
目前,提取将尝试读取整数,发现有逗号,并将流保持在失败状态。
或者,如果你想检查字符是否实际上是一个逗号(为了输入验证),你可以这样做:
while(ss >> tmpInt)
{
myList.addValue(tmpInt);
if (ss.get() != ',') break;
}