wppkind
wppkind
2015-10-21 04:03
采纳率: 75%
浏览 2.0k
已采纳

我的fflush(stdin)为什么没有丢弃输入缓冲区的内容

操作系统为linux mint 17.2
测试代码为:
#include
int main(){
char mychar;
scanf("%c",&mychar);
fflush(stdin);

printf("%c\n",mychar);
scanf("%c",&mychar);
printf("%c\n",mychar);
return 0;
}
当我运行时输入 AB,程序就直接结束了,并没有让我第二次输入内容,按理说我用了fflush后第二次调用scanf会让我继续输入的啊,但是它直接就从stdin读内容了,猜想是fflush并没有清空stdin,但不知原因是什么

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • q3733353520
    已采纳
    点赞 评论
  • weixin_43369835
    weixin_43369835 2019-05-22 17:04

    你的fflush(stdin);吸收的是第一个scanf()的‘\n'字符

    点赞 评论

相关推荐