A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紮西诺尔布 中级黑马   /  2015-4-9 20:03  /  631 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

{
    int a =-1,b=-1;
    char ch='a';

    //如果缓冲区中有内容,则不会提示我们再输入值
    scanf("%d",&a);
    scanf("%c",&ch);
    scanf("%d",&b);

    printf("%d,%c,%d",a,ch,b);

}


求解释下“如果缓冲区有内容,则不会提示我们再输入值”?

3 个回复

倒序浏览
当我们输入第一个值后,回车后,scanf接收了值然后赋给了变量,那个值依然保留在scanf缓冲区吗?不是消失掉?
回复 使用道具 举报
scanf函数的特点是,缓冲区有数据就可以直接取,匹配则拿走,不匹配读取失败数据仍然在缓冲区.printf函数同样是输入数据在缓冲区,但输入缓冲区满或者敲下\n才会把数据输进去
回复 使用道具 举报
还是对于scanf函数运行原理模糊晕啊!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马