为什么编译链接都没有关问题,就是没有输出

为什么编译链接都没问题,就是没有输出?
#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::cin;
using std::cout;
using std::endl;

 
int main()
{
vector<int> s;
int a;
cout<<"please input numbers"<<endl;
while(cin>>a)
s.push_back(a);

 
cout<<a<<endl;
for(vector<int>::const_iterator iter=s.begin();iter!=s.end(); ++iter)
cout << *iter <<endl;
return 0;
}

------解决方案--------------------
怎么没输出?while(cin>>a)条件不满足的时候就退出循环了,比如输入个字母,或者ctrl+Z 回车结束
------解决方案--------------------
打版说的没错。

本来这种写法就是错误的
cin函数进来的都是字符串形式的。即使你输入进变量int之后。使出也是不匹配的。

因为你是char行转换存进int的

把int a改成char a 效果会好点。最好还是用指针存。
------解决方案--------------------
int main()
{
vector<int> s;
int a;
cout<<"please input numbers"<<endl;
while(cin>>a)
s.push_back(a);

 
cout<<a<<endl;
for(vector<int>::const_iterator iter=s.begin();iter!=s.end(); ++iter)
cout << *iter <<endl;
char cc;//加这句
cc=getchar();//加这句,按任意键退出
return 0;
}
加这两句是为了有个停顿好让窗口能显示出输出的内容,不至于窗口一闪就退出DOS窗口了
------解决方案--------------------
while(cin >> a && !isdigit(a))
判断输入是否为数字,不是才会退出,或者是读到EOF。如楼上所说ctrl + z产生EOF
------解决方案--------------------
我的输出没问题呀