如何連續讀取多個以空格分開的數字?遇見回車結束?
阿新 • • 發佈:2019-01-05
首先,能用的函式有很多,比如cin.get(), cin.getline(), gets(),getchar(), getline(),但是,經過檢驗發現都不方便。
原因很明顯,他們要求的引數不是字串就是char*,用起來很麻煩。以下是我自己探索到的方法: 1.陣列法。此方法缺點是arr陣列大小固定了。 2.vector法。int arr[20]; int idx = 0; while(1) { cin >>arr[idx++]; char c = cin.get(); if(c == '\n') break; } arr[idx] = '\0'; for(int i=0; i < idx; i++) cout<<arr[i]<<" ";
vector<int> v;
int a;
while(cin >> a)
{
v.push_back(a);
char c = cin.get();
if(c == '\n')
break;
}
cout<<v.size()<<endl;
int i = 0;
while(v.size() > i)
{
cout<<v[i++]<<" ";
}