2010-02-18 10 views
4

입력을 공백 (예 : 1 2 3 4 5)으로 분리하고 배열에 넣으려면 입력을 어떻게받을 수 있습니까? 감사.사용자로부터 입력 번호 받기

흠. 나는 대부분의 응답이 내가 연구를해야 할 것이라고 추측하는 벡터를 사용하고있는 것을 본다. 우리가 sscanf 또는 어떤 것을 사용하는 것과 같은 벡터를 다루지 않았기 때문에 더 간단하고, 더 복잡한 응답이있을 거라고 생각했습니다. 입력에 감사드립니다.

답변

2
#include <vector> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    vector<int> num; 
    int t; 
    while (cin >> t) { 
    num.push_back(t); 
    } 
} 
+0

1) 당신은 을 #include를해야합니다. 2) 간단한 예제에서 namespace std를 사용할 필요가 없다는 것을 알 수 있습니다. std :: vector와 std :: cin을 간단히 말할 수 있습니다. 3) push_back 주위에 중괄호가 실제로 필요하지 않습니다. –

+1

감사합니다. iostream을 추가했습니다. 리퀘 스터는 초보자이기 때문에 프리픽스보다는 네임 스페이스를 사용하는 것이 더 쉬울 것입니다. – Pentium10

1
또는

,보다 일반적인 형태 :

#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)); 
} 
+0

OP는 벡터가 아닌 배열에 입력을 넣는 것에 대해 질문했습니다 (이것은 Pentium10의 대답에도 적용됩니다). –

+0

벡터는 CPP의 배열입니다. – Pentium10

+0

내가 '벡터'를 사용하는 이유는 미리 저장해야 할 숫자가 몇 개인지 알지 못하기 때문입니다. 그렇게했다면 배열을 사용하는 것이 합리적 일 것입니다. 그렇지 않으면 배열에 삽입하기 전에 범위를 벗어나는 인덱스를 테스트하는 루프가 필요합니다. – dirkgently

1
#include <iostream> 
#include <iterator> 
#include <vector> 

    std::istream_iterator<int> iterBegin(std::cin), iterEnd; 
    std::vector<int> vctUserInput(iterBegin, iterEnd);