1. 程式人生 > >如何連續讀取多個以空格分開的數字?遇見回車結束?

如何連續讀取多個以空格分開的數字?遇見回車結束?

首先,能用的函式有很多,比如cin.get(), cin.getline(), gets(),getchar(), getline(),但是,經過檢驗發現都不方便。

原因很明顯,他們要求的引數不是字串就是char*,用起來很麻煩。以下是我自己探索到的方法: 1.陣列法。
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]<<" ";
此方法缺點是arr陣列大小固定了。 2.vector法。
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++]<<" ";
	}