• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-07-26)  答疑解惑 |   1 条评论  60 
    文章评分 1 次,平均分 5.0

    输入原理:

    程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。

    【答疑解惑】C++ cin问题

    //cin读取:

    //①忽略开头whitespace字符

    //②碰到第一个非whitespace字符,如果是正确类型则读取并继续;

    // 如果是非正确类型,则结束读取并call setstate(ios_base::failbit);

    //③如果读取到正确类型字符,碰到其他字符(包括whitespace)则结束读取;

    如上图显示,遇到1.1时,首先读取1,然后读取到“.”时返回继续循环执行,这时.1留在缓冲区。继续读取时,从"."开始读取出错,退出循环,所以最后结果为3.

    本文属原创,转载请注明出处,违者必究

    关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

    【答疑解惑】C++ cin问题

     

    本文原始地址:http://www.coderonline.net/faq-c-cin-problem.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于
    自由

    发表评论

    表情 格式
    1. 解释输入函数很清楚。

      Coder 评论达人 LV.5 3年前 (2015-07-29) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册