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