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