我必須將每一行輸入中的數字放入不同的向量中,而不知道一行輸入中有多少個數字。例如:
1 2 3
4 5 6 -7
應該導致
a = {1, 2, 3};
b = {4, 5, 6, -7};
請注意,每行中的整數數量是未知的。
我試過使用stringstream但由于某種原因它不適用于兩行輸入:
int main() {
vector<int> a, b;
string c;
int number;
stringstream lineOfInput;
getline(cin, c);
lineOfInput.str(c);
c = "";
while (lineOfInput >> number) {
a.push_back(number);
}
getline(cin, c);
lineOfInput.str(c);
c = "";
while (lineOfInput >> number) {
b.push_back(number);
}
return 0;
}
第一個向量正常填充,但第二個沒有。有沒有一種從行中提取數字的好方法(不使用 boost 庫),我的代碼有什么問題?
uj5u.com熱心網友回復:
當您在 while 回圈中使用 lineOfInput 作為條件時,它將一直運行,直到進入失敗狀態,因此具有相同字串流的第二個 while 將永遠不會運行,因為它不會回傳 true。只需添加lineOfInput.clear(),一切都會好起來的。
此外,當您遇到此類問題時,除錯并查看實際發生的情況會很有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490489.html
上一篇:如何將多個輸入放在一個變數中C
下一篇:從字串中提取血壓值
