免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1610 | 回复: 4
打印 上一主题 下一主题

文件结束符? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-12 09:20 |只看该作者 |倒序浏览
//Link list
struct List
{
        int data;
        List *next;
};
List *CreateList()
{
        List *head = NULL;
        List *p = NULL, *q = head;
        int d;
        while(cin>>d)
        {
                p = new List();
                p->data = d;
                p->next = NULL;

                if(NULL != head)
                {
                        q->next = p;
                        q = q->next;               
                }
                else
                {
                        head = p;
                        q = p;
                }
        }
        return head;
}

void ShowList(List *head)
{
        List *tmp = head;
        while(tmp != NULL)
        {
                cout<<tmp->data;
                tmp = tmp->next;
        }
}
int Length(List *head)
{
        List *tmp = head;
        int length = 0;
        while(NULL != tmp)
        {
                length++;
                tmp = tmp->next;
        }
        return length;
}
List * DelList(int data, List *head)
{
        List *tmp = head;
        List *p = tmp;
        while(NULL != tmp)
        {
                if(data == tmp->data)
                {
                        if(head == tmp)
                        {
                                head = head->next;
                                delete tmp;
                                tmp = NULL;
                        }
                        else
                        {
                                p->next = tmp->next;
                                delete tmp;
                                tmp = NULL;
                        }
                        break;
                }
                p = tmp;
                tmp = tmp->next;
        }
        return head;
}


int main()
{
        List *head = CreateList();
        ShowList(head);
        cout<<"\nthe length of List :"<<Length(head)<<endl;
        int data;
        cin>>data;
        head = DelList(data, head);
        ShowList(head);
                return 0;
}
为什么ctrl+x之后就全部退出了呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-03-12 09:44 |只看该作者
ctrl+x是啥意思?
windows是ctrl+z
*nix是ctrl+d

论坛徽章:
0
3 [报告]
发表于 2007-03-12 11:37 |只看该作者
哦,这样啊谢谢!
List *CreateList()
{
        List *head = NULL;
        List *p = NULL, *q = head;
        int d;
        while(cin>>d)
        {
                p = new List();
                p->data = d;
                p->next = NULL;

                if(NULL != head)
                {
                        q->next = p;
                        q = q->next;               
                }
                else
                {
                        head = p;
                        q = p;
                }
        }
        cout<<"The List was Created"<<endl;
        return head;
}

上边的结果
1
2
3
^Z
^Z
The List was Created

为什么按了两次ctrl+z?才退出来啊?
那个while循环不是接收到结束符就会结束吗?

[ 本帖最后由 lnfxcf 于 2007-3-12 11:38 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-03-12 12:29 |只看该作者
原帖由 lnfxcf 于 2007-3-12 11:37 发表
哦,这样啊谢谢!

上边的结果

为什么按了两次ctrl+z?才退出来啊?
那个while循环不是接收到结束符就会结束吗?

ctrl+z好像是挂起进程吧

论坛徽章:
0
5 [报告]
发表于 2007-03-12 12:41 |只看该作者
请问
while(cin>>data)
{
}

什么情况下会退出?我经常ctrl+x来退出
之后就出现我刚开始问问题了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP