[C语言]C语言小白求解答

feitianqixia 2018-02-24 09:24:06
char sex;
int count = 0;
for (;;)
{
printf("请输入性别:");
scanf("%c",&sex);
fflush(stdin);
if (sex != 'm' && sex != 'M' && sex != 'f' && sex != 'F')
{
break;
}
count++;
}
printf("您一共输入正确%d次\n", count);
为什么输入字符f后按回车,程序直接跳出循环结束了?求解答,谢谢
...全文
981 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxmmua 2018-11-15
  • 打赏
  • 举报
回复
引用 楼主 feitianqixia的回复:
char sex;
int count = 0;
for (;;)
{
printf("请输入性别:");
scanf("%c",&sex);
fflush(stdin);
if (sex != 'm' && sex != 'M' && sex != 'f' && sex != 'F')
{
break;
}
count++;
}
printf("您一共输入正确%d次\n", count);
为什么输入字符f后按回车,程序直接跳出循环结束了?求解答,谢谢
没有进去for 循环的条件
赵4老师 2018-02-26
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。
//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。
自信男孩 2018-02-26
  • 打赏
  • 举报
回复
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();但是这个需要每次只能输入一个字符然后换行,否则结果也是未定义的。
snailzzw 2018-02-25
  • 打赏
  • 举报
回复
应该是没用getchar(),这个错误很常见,用它吃空格!
言术 2018-02-25
  • 打赏
  • 举报
回复
scanf("%c",&sex); getchar();
www_adintr_com 2018-02-24
  • 打赏
  • 举报
回复
回车不属于 'm' 'M', 'f', 'F' 自然就 break 结束了呀
C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【备注】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip
C语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zip 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【备注】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! C语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zipC语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zipC语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zipC语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zipC语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zipC语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zip C语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zip C语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zip C语言课程大作业-基于C语言实现的班级学生管理系统源码+超详细注释.zip

70,034

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧