首页 > 其他 > 详细

cin.get()!='n'

时间:2020-05-01 21:21:33      阅读:53      评论:0      收藏:0      [点我收藏+]

键盘敲入字符,都暂存才cin的缓冲里面,当发现回车键时,开始从缓冲读取数据。cin >> golf时,就是从缓冲读取数据到golf,golf是int型,当从缓冲读取到其它非数字字符时,意味着读取失败。失败就给cin.?flag?产生错误标志,当错误标志存在时,cin就不能工作了,必须先清除掉。所以有了cin.clear()
1.当错误发生是,缓冲中已经被读取的字符已然没了,余下的都是从错误字符往后的字符了(产生错误的字符也已经被读走了,否则怎么产生错误)。Enter是在最后的,当然还存在着。
cin.clear(),只清除了错误标记。
2.既然发生了错误,就干脆把缓冲清空,重新进行输入。
所以就使用cin.get()从缓冲读取字符,直到连回车一起读走。每读一个字符,缓冲里就少一个字符。
3. 控制台程序,光标始终在给用户进行输入的地方。与cin无关。

 

cin.get()取得输入的字符,如果这个字符不是换行符,那么返回值为1,执行continue,即回到while继续这么干,若执行遇到换行符,则退出整个while循环,这个换行符弃之不顾。那么这整个语句的作用,就是读取该行换行符前的所有字符。

cin.get()!='n'

原文:https://www.cnblogs.com/dongxiangzhaofugui/p/12814397.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!