0
我试图通过使用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);
}
你可以告诉'忽略()'方法来具体忽视逗号,使用ss.ignore(n,',')',其中'n'是一个足够大的字符数跳过,直到达到'','' – naxchange 2013-03-22 23:54:35
我的上帝你很快!我也尝试在数据字符串上做这个:replace(choice.begin(),choice.end(),',','');这似乎也起作用。这里最干净的事情是什么? – Christoffer 2013-03-22 23:56:59
@Tophe我不会做替换。你应该弄清楚你认为是有效的输入和准确的验证。使用替换方法,他们也可以输入'1,2,3,4,5'。你想要那个吗? – 2013-03-22 23:58:53