从 C++ 中的向量打印数字列表

Printing a list of numbers from a vector in C++

我正在尝试编写一个程序,要求用户输入整数并将它们放入向量中,直到用户给出的整数为 0。然后它应该在向量中打印整数。

这是我的代码:

#include <iostream>
#include <vector>

using namespace std;
template <typename A>

void print_numbers(const vector<A> &V){
    cout << "The numbers in the vector are: " << endl;
    for(int i=0; i < V.size(); i++)
        cout << V[i] << " ";
}

int main() {

    vector<int> numbers;
    int input;

    cout << "Please type your numbers" << endl;
    cin >> input;
    while ((cin >> input) && input != 0)
        numbers.push_back(input);

    print_numbers(numbers);


    return 0;
}

它打印除第一个整数以外的所有内容。有什么想法吗?

您的第一个输入未存储到数字向量中。你有

cin >> input;

然后直接

while ((cin >> input) && input != 0)
   numbers.push_back(input);

这意味着您将第一个数字存储到输入中,但随后通过在 while 循环中执行 cin >> input 直接覆盖它,而不是在第一个输入上调用 push_back 函数。