[求助]第二次循环判断语句就不起作用了?
各位C前辈,帮我看看这个自定义函数,在循环第二次时,if判断语句就不起作用了...是哪里不妥?如果我第一次输入电话号码对了,我想再继续,可是在第二次输入电话号码时if就不起作用了.....
void augment()//定义函数,增加输入.
{
char ch;
if((fp=fopen("telefon.dat","rb"))==NULL)//以读的方式打开文件.
{
printf("\n");
printf("对不起,打开文件失败!\3\3请先创建文件『回车返回主菜单』:");
scanf("%c",&ch);
fflush(stdin);
return;//回车返回主函数.
}
fp=fopen("telefon.dat","ab");//以写的方式(追加,向二进制文件尾添加数据)打开文件.
for(;;)
{
system("cls");
printf("\n\t\t\t**********\3\3增加输入\3\3**********\n\n");
printf("新增用户姓名:\n");
scanf("%s",qhg.name);
fflush(stdin);
printf("\n");
printf("地址:\n");
scanf("%s",qhg.address);
fflush(stdin);
for(;;)
{
printf("\n电话号码(介于40000004999999之间):\n");
scanf("%d",&qhg.phone);
fflush(stdin);
if(qhg.phone>=4000000&&qhg.phone<=4999999)//对电话号码范围的判断.
{
fwrite(&qhg,sizeof(struct user),1,fp);
printf("\n增加输入成功!\2\2『按回车继续增加\3\3或输入n回到主菜单进行其它操作』:");
scanf("%c",&ch);
fflush(stdin);
if(ch=='n'||ch=='N')
{
fclose(fp);
return;//输入n到主函数.
}
else
{
fclose(fp);
break;//如果想继续增加,回车退出内循环,又从外循环开始.
}
}
else
{
printf("\n电话号码输入有误!『请回车重新填写\3\3或输入n回到主菜单』:");
scanf("%c",&ch);
fflush(stdin);
system("cls");
if(ch=='n'||ch=='N')
{
fclose(fp);
return;
}
}
}
}
}