69,382
社区成员
发帖
与我相关
我的任务
分享
//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。
int main(void)
{
char sex;
int count = 0;
for (;;)
{
printf("请输入性别:");
scanf("%c",&sex);
getchar();
if (sex != 'm' && sex != 'M' && sex != 'f' && sex != 'F')
{
break;
}
count++;
}
printf("您一共输入正确%d次\n", count);
return 0;
}
参考一下吧
因为fflush(stdin);没有起作用。该fflush对于stdin是未定义的。即它不能起到刷新输入缓冲区的作用。建议用getchar();但是这个需要每次只能输入一个字符然后换行,否则结果也是未定义的。