> 백엔드 개발 > C++ > 사용자 입력을 벡터에 저장할 때 첫 번째 숫자만 계산되는 이유는 무엇입니까?

사용자 입력을 벡터에 저장할 때 첫 번째 숫자만 계산되는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-26 12:01:29
원래의
574명이 탐색했습니다.

Why is only the first number being counted when storing user input into a vector?

사용자 입력을 벡터에 저장: 종합 가이드

이 문의에서 사용자는 벡터에 여러 숫자를 입력하려고 시도하고 있으며 이후에 함수 호출을 사용하여 개수를 계산합니다. 아래 제공된 코드는 첫 번째 숫자만 계산되는 문제를 나타냅니다.

<code class="cpp">template <typename T>
void write_vector(const vector<T>&amp; 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿