J'essaie de demander à l'utilisateur d'entrer des nombres qui seront poussés dans un vecteur, puis d'utiliser un appel de fonction pour compter ces nombres.
Pourquoi cela ne fonctionne-t-il pas ? Je ne peux compter que le premier nombre.
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;
}
0 votes
D'après mon expérience, cin ne capture que le premier token d'une chaîne, donc tout ce qui se trouve après un espace est coupé. Si vous voulez vraiment utiliser cin, lisez chaque variable séparément, ou demandez à l'utilisateur de séparer les valeurs par une virgule et de les analyser. Ou vous pouvez utiliser le tableau argv dans la méthode principale.
3 votes
Avez-vous essayé d'utiliser une variable supplémentaire ? Au lieu d'utiliser n pour la taille et l'entrée temporaire.
3 votes
Vous devriez expliquer ce qui ne fonctionne pas ici.
0 votes
@R.MartinhoFernandes BenjaminLindley Je suis d'accord avec vous, mais je pensais que l'OP avait déjà passé du temps et qu'il pouvait obtenir la réponse. Bien sûr, votre approche est bien meilleure.