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

时间:2016-12-29 19:37:26

标签: c++ arrays reverse

我的运动有问题。我必须提供一些数字,程序是以相反的顺序显示它们,但它没有显示最后输入的数字。

#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

相同

1 个答案:

答案 0 :(得分:1)

当您输入最后一个号码并按Enter键时,\n将添加到流媒体中,getchar()会将其取出;但是那时你的条件失败了,所以在读取最后一个值时不会输入循环。您可能需要另外测试std::cin,然后附加数字。

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