【问题标题】:Printing a list of numbers from a vector in C++从 C++ 中的向量打印数字列表
【发布时间】:2021-12-21 17:19:27
【问题描述】:

我正在尝试编写一个程序,向用户询问整数并将它们放入向量中,直到用户给出的整数为 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 &gt;&gt; input;。第一个数字甚至从未进入vector。它在程序到达while 循环之前被消耗掉。
  • @user4581301 谢谢! :)

标签: c++ vector cin


【解决方案1】:

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

cin >> input;

然后紧接着

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 2017-06-26
    • 2017-10-31
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多