首页 新闻 会员 周边

不能退出循环

0
[待解决问题]

各位大佬,本人才学习c语言没有多久,现在再学链表和文件,请问下面这段程序为什么不能退出循环啊?谢谢!

    while(p->name!='\0')
    {
        fprintf(fp,"%15s%15s\n",&p->name,&p->tel);
        i++;
        if(head==NULL)
            head=p;    
        else
            q->next=p;
        q=p;
        p=(list    *)malloc(sizeof(list));
        printf("\n     请输入第%d个记录:\n",i);
        printf("    姓名:");
        scanf("%s",&p->name);
        if(p->name!='\0')
        {
                printf("    电话:");
                scanf("%s",&p->tel);
                q->next=NULL;
        }
    }
不吃猕猴桃的金丝猴的主页 不吃猕猴桃的金丝猴 | 菜鸟二级 | 园豆:204
提问于:2017-04-26 22:33
< >
分享
所有回答(2)
0

name这个输入可能会接收到number输入留下的回车,你可以把判断结束弄成一个字符,例如quit,并且这输入number后面接受一个字符,即用getchar,避免name输入接收到遗留下的回车

逆倒尘光 | 园豆:202 (菜鸟二级) | 2017-04-27 10:02

好的,谢谢

 

能给我说详细一点嘛?我改了但是还是不能退出循环。谢谢

那你加我QQ行吗,我帮你看下

支持(0) 反对(0) 逆倒尘光 | 园豆:202 (菜鸟二级) | 2017-04-27 13:17

1142838399

支持(0) 反对(0) 逆倒尘光 | 园豆:202 (菜鸟二级) | 2017-04-27 13:18

@逆倒尘光: 好的,对不起啊前几天有点忙把这个忘了。

0

你直接在要退出循环的地方给上break;不就行

你猜丶 | 园豆:183 (初学一级) | 2017-04-28 09:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册