C++中cin的返回值问题
作者:林三撇 发布时间:2021-07-04 17:59:22
标签:C++,cin,返回值
cin的返回值
今天在用STL时用到while(cin>>s1>>a>>s2>>b)这样的语句,本来所有的输入都是“string+int+string+int”格式的,但是结束标志却是“quit”,于是很好奇cin的输入到底是返回什么。
首先想到,cin是一个对象,那么到底是返回什么影响了while,查了很多博客才发现是操作符“>>”在起作用,这个操作符接收一个istream对象作为其做操作数,接收一个对象作为其右操作数。
”>>”操作符返回其左操作数作为结果,这样也就可以解释为什么上面可以将个几输入操作合并了。
原因在于得到输入后返回一个cin,接着可以继续操作读取了,而且在输入不符合类型和EOF时停止。
输入(cin)缓冲是行缓冲。
当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。
每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据。
cin流输入的返回值问题
感觉今天发现一个比较好的问题
while(cin>>n)
这个语句肯定经常看到把
但是
为什么可以用while来判断呢
难道cin>>n的返回值是bool 类型?
这时候,看源码 的 重要性就体现出来了
在ios里面有
operator void *() const {
if(state&(badbit|failbit) )
return 0;
return (void* )this;
}
这样一段代码
再来看这样一段文字
所以说 invalid state 时 返回值为0,否则是(void *)首地址
这样就可以用while来判断了
来源:https://blog.csdn.net/qq_34677945/article/details/69392223
0
投稿
猜你喜欢
- jcasbin简介:jcasbin 是一个用 Java 语言打造的轻量级开源访问控制框架https://github.com/casbin/
- 布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去
- Android 中ScrollView嵌套GridView,ListView的实例在Android开发中,经常有一些UI需要进行固定styl
- Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边
- 一、准备工作mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直
- Spring Data JPA映射自定义实体类这个问题困扰了我2天=-=,好像也能使用 jpql解决先说下自己的功能:查询oracle最近s
- 本文实例讲述了Android之复选框对话框用法。分享给大家供大家参考。具体如下:main.xml布局文件<?xml version=&
- 使用ProcessBuilder踩到的坑最近使用ProcessBuilder执行命令,命令内容正确,但始终报错命令实行失败,是因为不熟悉Pr
- 前言本文简单介绍了设计模式的一种——职责链模式 一、职责链模式的定义与特点定义:为了避免请求发送者与多个请求处理者耦合在一起,于是
- 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把
- 本文为大家分享了java实现学生选课系统的具体代码,供大家参考,具体内容如下案例要求:学生(学号,姓名,专业,所选课程{<3}) 老师
- 一、DES加密和解密package com.itjh.javaUtil;import java.io.UnsupportedEncoding
- 这个问题来来回回困扰了我很久,一直没能妥善解决。场景1:华为手机遮挡了屏幕底部。场景2:进入应用时,虚拟键自动缩回,留下空白区域。需求:需要
- 写在前面所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题.异常处理的基本思想是简化程序的错误
- 系统: lc android4.4 在做前后摄像头录像的时候,发现会出现花屏的时候,但不是必现,可能会在某一次重启之后会出现,而且出现之后会
- 一、理解slf4j(Simple Logging Facade for Java),表示为java提供的简单日志门面,更底层一点说就是接口。
- 这里是通过对回退键操作的阻断并重写实现:当按下回退键,弹出提示框选择是否退出,是则执行退出代码,否则什么都不做。在Mianactivity中
- 网络办公正逐渐成为常态,无纸化办公也是一个潮流,这二者需要电子签章,最简单的方法就是在纸上盖一个章然后扫描成电子图片文件,最后在你的系统加载
- 定义MD全称Message-Digest,即信息摘要,所以MD家族的算法也叫信息摘要算法MD家族有MD2、MD3、MD4、MD5,一代比一代
- 在上篇文章给大家介绍了IntelliJ IDEA设置显示内存指示器和设置内存大小的方法,感兴趣的朋友可以点击阅读,今天给大家分享IDEA 设