Maison > développement back-end > C++ > le corps du texte

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

Patricia Arquette
Libérer: 2024-10-26 12:01:29
original
563 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal