Maison  >  Article  >  développement back-end  >  Pourquoi seul le premier nombre est-il compté lors du stockage des entrées utilisateur dans un vecteur ?

Pourquoi seul le premier nombre est-il compté lors du stockage des entrées utilisateur dans un vecteur ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 12:01:29564parcourir

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

Stockage des entrées utilisateur dans un vecteur : un guide complet

Dans cette enquête, un utilisateur tente de saisir plusieurs nombres dans un vecteur et comptez-les ensuite à l’aide d’un appel de fonction. Le code fourni ci-dessous présente un problème où seul le premier nombre est compté :

<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>

Le coupable réside dans le fait qu'actuellement, un seul entier est lu par l'utilisateur. Pour remédier à cela, une boucle est nécessaire.

<code class="cpp">while (cin >> input)
    V.push_back(input);</code>

Cette boucle récupère en continu les entiers de l'entrée standard jusqu'à ce qu'il n'y ait plus d'entrée disponible. Le processus de saisie se termine lorsque cin détecte la fin du fichier (EOF) ou rencontre une valeur non entière.

Alternativement, une valeur sentinelle peut être utilisée, ce qui présente l'inconvénient d'empêcher l'utilisateur de saisir cette valeur particulière. . Par exemple :

<code class="cpp">while ((cin >> input) && input != 9999)
    V.push_back(input);</code>

Dans ce scénario, les entrées sont collectées jusqu'à ce que l'utilisateur entre 9999 (ou déclenche une autre condition qui rend cin invalide), après quoi la boucle se termine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn