【答疑释惑】C++ cin的问题

Java中的高精度数字语音版

---------------------------------------------------------------

输入原理:

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

//cin读取:

//①忽略开头whitespace字符

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

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

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

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

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

java开发中代码级别的优化方法总结,有效提高程序性能

负载测试和应用程序监控对于确定应用程序的一些关键性能瓶颈非常有用。但同时,我们需要遵循良好的编码习惯,以避免在对应用程序进行监控的时候出现过多的性能问题。

682
来自专栏V站

PHP复杂变量绕过addslashes()直接拿shell

访问链接如下: http://www.test.com/ctf.php?str=${phpinfo()}

7143
来自专栏腾讯NEXT学位

JavaScript引擎分析

? 一.JavaScript简介 JavaScript是一种动态类型的脚本语言;在1995年时,由Netscape公司的Brendan Eich,在网景导航者...

1532
来自专栏IT技术精选文摘

深入浅出Java 10的实验性JIT编译器Graal

1465
来自专栏QQ会员技术团队的专栏

JavaScript引擎分析

JavaScript引擎分析 一. JavaScript简介 JavaScript是一种动态类型的脚本语言;在1995年时,由Netscape公司的Brend...

2215
来自专栏开源优测

[快学Python3]基础知识

设置源文件编码 在默认情况下,Python3源码文件是以UTF-8编码进行保存的,所有的字符串都是unicode编码格式。 一般情况下,我们在源码文件第一行使用...

27613
来自专栏醉梦轩

Python和JavaScript中的生成器与协程

Python和JavaScript中都有生成器(Generator)和协程(coroutine)的概念。本文通过分析两者在这两种语言上的使用案例,来对比它们的差...

2102
来自专栏Android 研究

Java虚拟机基础——3类加载机制

在这个框架图很容易大体上了解Java程序工作原理。首先当程序员写好.java文件后,需要先运行(假设该文件为demo.java)

974
来自专栏xcywt

关于delete 和 new

关于new和delete,有如下代码 // new_test.cpp #include<iostream> using namespace std; cl...

1946
来自专栏向治洪

类加载器原理

1.类的加载过程   JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: ?...

1988

扫码关注云+社区