我的运动有问题。我必须提供一些数字,程序是以相反的顺序显示它们,但它没有显示最后输入的数字。
#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
答案 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.