各位大佬,本人才学习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; } }
name这个输入可能会接收到number输入留下的回车,你可以把判断结束弄成一个字符,例如quit,并且这输入number后面接受一个字符,即用getchar,避免name输入接收到遗留下的回车
好的,谢谢
能给我说详细一点嘛?我改了但是还是不能退出循环。谢谢
那你加我QQ行吗,我帮你看下
1142838399
@逆倒尘光: 好的,对不起啊前几天有点忙把这个忘了。
你直接在要退出循环的地方给上break;不就行