反向数组 - 没有第一个数字

Reverse array - out without first number

我运动有问题。我必须给出一些数字,程序会以相反的顺序显示它们,但不会显示最后输入的数字。

#include <iostream>
#include <list>
#include <cstdio>

using namespace std;

list <int> lista;

int main() {
    int liczba;
    while ((cin >> liczba) &&(getchar()!='\n')) {
        lista.push_front(liczba);
    }
    for(list<int>::iterator i=lista.begin();i != lista.end(); ++i)
        cout<<*i<<" ";

    return 0;
}

std::vector

也一样

当您输入最后一个数字并回车时,\n 将被添加到流中,getchar() 将被拾取;但是你的条件失败了,所以当读取最后一个值时不会进入循环。您可能需要额外测试 std::cin 然后附加数字。

while ((cin >> liczba) &&(getchar()!='\n')) {
    lista.push_front(liczba);
}
if(cin) 
    lista.push_front(liczba); //for the last item.