사용자 입력을 벡터에 저장: 종합 가이드
이 문의에서 사용자는 벡터에 여러 숫자를 입력하려고 시도하고 있으며 이후에 함수 호출을 사용하여 개수를 계산합니다. 아래 제공된 코드는 첫 번째 숫자만 계산되는 문제를 나타냅니다.
<code class="cpp">template <typename T> void write_vector(const vector<T>& V) { cout << "The numbers in the vector are: " << endl; for(int i=0; i < V.size(); i++) cout << V[i] << " "; } int main() { int input; vector<int> V; cout << "Enter your numbers to be evaluated: " << endl; cin >> input; V.push_back(input); write_vector(V); return 0; }</code>
현재 사용자가 단일 정수만 읽고 있다는 사실이 원인입니다. 이 문제를 해결하려면 루프가 필요합니다.
<code class="cpp">while (cin >> input) V.push_back(input);</code>
이 루프는 더 이상 사용 가능한 입력이 없을 때까지 표준 입력에서 정수를 계속 검색합니다. cin이 파일 끝(EOF)을 감지하거나 정수가 아닌 값을 발견하면 입력 프로세스가 종료됩니다.
또는 센티넬 값을 사용할 수 있는데, 이는 사용자가 해당 특정 값을 입력할 수 없다는 단점이 있습니다. . 예를 들면 다음과 같습니다.
<code class="cpp">while ((cin >> input) && input != 9999) V.push_back(input);</code>
이 시나리오에서는 사용자가 9999를 입력할 때까지(또는 cin을 유효하지 않게 렌더링하는 다른 조건을 트리거할 때까지) 입력이 수집되며, 이 때 루프가 종료됩니다.
위 내용은 사용자 입력을 벡터에 저장할 때 첫 번째 숫자만 계산되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!