C语言 循环语句中的重复输入问题
while(flag){printf("请输入职工姓名:");gets(Name[i]);printf("请输入该职工号:");gets(Number[i]);i++;P...
while(flag)
{
printf("请输入职工姓名:");
gets(Name[i]);
printf("请输入该职工号:");
gets(Number[i]);
i++;
People++;
printf("是否继续输入职工信息(y/n):");
scanf("%c",&c);
if(c=='n'||c=='N')
flag=0;
}
flag为这个循环的开关,控制循环的结束
但是程序运行时,输入y敲回车后,会跳过gets(Name[i]);这条语句,直接下往下运行,
但是找不出错误。。求助。。。 展开
{
printf("请输入职工姓名:");
gets(Name[i]);
printf("请输入该职工号:");
gets(Number[i]);
i++;
People++;
printf("是否继续输入职工信息(y/n):");
scanf("%c",&c);
if(c=='n'||c=='N')
flag=0;
}
flag为这个循环的开关,控制循环的结束
但是程序运行时,输入y敲回车后,会跳过gets(Name[i]);这条语句,直接下往下运行,
但是找不出错误。。求助。。。 展开
4个回答
展开全部
scanf语句后再加一句:
scanf("%c",&c);
fflush(stdin);
这是缓冲区的原因
scanf("%c",&c);
fflush(stdin);
这是缓冲区的原因
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
缓冲区的问题,清空缓冲区即可,还有最好用都用scanf来从键盘输入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入缓冲区有数据 在最后一个scanf()后使用下面语句清除输入缓冲区的数据 :
while(getchar()!='\n') ;
while(getchar()!='\n') ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%c\n",&c); 即OK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询