我的运动有问题。我必须提供一些数字,程序将按相反的顺序显示它们,但不会显示最后输入的数字。
#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
也是一样 最佳答案
输入最后一个数字并按Enter后,\n
将被添加到流中,而getchar()
将其拾取。但是您的条件失败了,因此在读取最后一个值时将不会进入循环。您可能需要另外测试std::cin
,然后附加数字。
while ((cin >> liczba) &&(getchar()!='\n')) {
lista.push_front(liczba);
}
if(cin)
lista.push_front(liczba); //for the last item.