为什么在dev上可以编译运行,但在运行结果界面按回车就一直在换行,不输出结果,是怎么回事?


#include<iostream>
#include<cstdio>
//#include<algorithm>
using namespace std; 
const int N=10;
//head表示头结点的下标
//e[i]表示节点i的值
//ne[i]表示节点i的next指针
//idx表示用到了哪个地址,就是下标
int head= -1,e[N],ne[N],idx;
void add_to_head(int x)
{
    e[idx]=x;
    ne[idx]=head;
    head=idx++; 
} 
int main()
{
    int val;
    while(~scanf("%d",&val)) //~scanf表示没有输入值的时候,结束while循环
    {
        add_to_head(val);
    } 
    for(int i=head;i!=-1;i=ne[i])
        cout<<e[i]<<" ";
    cout<<endl;
    return 0;
}

while(scanf("%d",&val)) //scanf表示没有输入值的时候,结束while循环
这是你想象的效果吧?什么叫没有输入值的时候呢?
while(scanf("%d",&val) != EOF) --- 这样按CTRL+Z键后回车可结束循环,在linux下按CTRL+D