如果要通過空格分隔輸入(例如1 2 3 4 5)並將其放入數組中,如何從用戶處獲得輸入?謝謝。從用戶獲取輸入號碼
嗯。我看到大多數回覆都使用了一個我認爲必須進行研究的向量。我認爲會有更簡單但可能更復雜的迴應,因爲我們沒有使用像sscanf之類的向量。感謝您的投入。
如果要通過空格分隔輸入(例如1 2 3 4 5)並將其放入數組中,如何從用戶處獲得輸入?謝謝。從用戶獲取輸入號碼
嗯。我看到大多數回覆都使用了一個我認爲必須進行研究的向量。我認爲會有更簡單但可能更復雜的迴應,因爲我們沒有使用像sscanf之類的向量。感謝您的投入。
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> num;
int t;
while (cin >> t) {
num.push_back(t);
}
}
或者,更通用的形式:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<int> num;
copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(num));
}
OP詢問將輸入放入數組中,而不是向量(這也適用於Pentium10的答案)。 –
矢量是CPP中的數組。 – Pentium10
我使用'vector'的原因是因爲您不知道需要事先存儲多少個數字。如果你這樣做,那麼使用數組是有意義的。否則,在插入數組之前,您需要一個循環來測試索引超出範圍。 – dirkgently
#include <iostream>
#include <iterator>
#include <vector>
std::istream_iterator<int> iterBegin(std::cin), iterEnd;
std::vector<int> vctUserInput(iterBegin, iterEnd);
1)你必須#包括。 2)對於這樣一個簡單的例子,我沒有看到使用命名空間std的必要性,你可以簡單地說std :: vector和std :: cin。 3)你並不需要push_back周圍的花括號。 –
謝謝,我添加了iostream。我敢打賭,請求者是新手,使用名稱空間而不是在它們前面添加名稱會更容易。 – Pentium10